明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1980|回复: 7

点到线上的垂点

[复制链接]
发表于 2012-6-18 17:23 来自手机 | 显示全部楼层 |阅读模式
求点到线上的垂点
发表于 2012-6-18 17:39 | 显示全部楼层
点到线的最短距离!有函数!
发表于 2012-6-18 18:31 | 显示全部楼层

还是多用论坛的搜索功能吧,少些重复主题,不能太懒 。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-6-18 21:05 | 显示全部楼层
我还在找方法,,
发表于 2012-6-18 22:51 | 显示全部楼层
本帖最后由 yshf 于 2012-6-18 22:51 编辑

设直线上的一点为P1,直线上另一点为P2,直线外任一点为P3,
则P3到直线P1P2的距离为:d=2×三角形P3P1P2的面积÷P1到P2的距离。
测试程序如下:

  1. ;点到直线的距离  yshf
  2. (defun c:test()
  3.      (setq cm (getvar "cmdecho"))
  4.      (setvar "cmdecho" 0)
  5.      (if (setq p1 (getpoint "\n直线段第一个端点:"))
  6.          (if (setq p2 (getpoint p1 "\n直线段第二个端点:"))
  7.              (while (setq p3 (getpoint "\n直线外的任一点<回车结束>:"))
  8.                   (command "_area" p3 p1 p2 "")
  9.                   (setq d  (/ (* 2.0 (getvar "area")) (distance p1 p2)))
  10.                   (princ (strcat "\n点到直线的距离=" (rtos d 2 10)))
  11.              )
  12.          )
  13.      )
  14.      (setvar "cmdecho" cm)
  15.      (princ)            
  16. )
发表于 2012-6-19 02:53 | 显示全部楼层
方法1:
;;设直线上的一点为P1,直线上另一点为P2,直线外任一点为P3
(distance
P3
(inters P1 P2 P3 (polar P3 (+(angle P1 P2)(/ PI 2)) 1) nil)
)
;;方法二
查看vlax-curve-getClosestPointTo函数帮助
发表于 2012-6-19 09:08 | 显示全部楼层
(vlax-curve-getClosestPointTo (vlax-ename->vla-object (car (entsel "\n选择线"))) (getpoint "\n选择点"));线上到指定点最近点
发表于 2012-6-19 10:50 | 显示全部楼层
这是一个非常牛的算法:

http://bbs.mjtd.com/forum.php?mo ... &fromuid=398403
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-2 10:34 , Processed in 0.310724 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表