找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 867|回复: 8

[求助] [求助]:一点是否在一条直线上的函数是什么!

[复制链接]
发表于 2003-11-29 18:37:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
一点是否在一条直线上的函数是什么!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-11-30 00:36:16 | 显示全部楼层
好像没有这个函数,不过可以求出点与直线的垂直距离,如果为0,则点在直线上。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-30 05:14:30 | 显示全部楼层
AutoLisp中没有这个函数. 可以通过自定义函数(命令)来解决.
直线的情况比较简单, 推广到任意曲线甚至实体, 这个命题即: 判断一点是否在某一实体上. 以前论坛有此方面的贴子, 请搜索.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-30 21:05:02 | 显示全部楼层
我这有个函数!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-11-30 23:08:41 | 显示全部楼层
判断p   在p1 p2上
(equal (+(distance p p1)(distance p p2) )  (distance p1 p2) 1e-5)

p在p1 p2上或p1 p2延伸线上
(equal (abs(sin(angle p p2)))(abs(sin(angle p p1))) 1e-5)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-1 00:41:25 | 显示全部楼层
同意3楼说法
语法

     (vlax-curve-getDistAtPoint curve-obj point)



功能

      返回曲线从开始点到指定点的曲线段的长度

 

说明

1)参数 curve-obj 为要测量的 VLA 对象。

2)参数 point 为curve-obj 上的三维点表(在 WCS 中)。

返回值:

若成功则返回实数,否则返回 nil。

范例

假定 splineObj 指向 vlax-curve-getDistAtParam 范例中的样条曲线。

设置 OSNAP 为“切点”并选择直线与曲线相切的点:

_$ (setq getPt (getpoint))

(4.91438 6.04738 0.0)

确定从曲线开始点到选定点的距离:

_$ (vlax-curve-getDistAtPoint splineObj getPt)

5.17769

注明: 如果返回nil.则点不在曲线(包括直线)上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-8-19 17:11:01 | 显示全部楼层
6楼说法不错, 用(vlax-curve-getdistpoint vla-obj point) 可以判断一个点是否在vla-obj 实体, 可是, 我现在用(setq point (vlax-curve-getClosestPointTo  vla-obj point )函数, 把点指定到实体上了,
为什么vlax-curve-getdistpoint 函数还返回为空呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8159个

财富等级: 富甲天下

发表于 2006-8-19 17:47:43 | 显示全部楼层
Command: (setq pt (getpoint))
(516.64 442.693 0.0)

Command: (setq px (vlax-curve-getClosestPointTo vla-obj pt))
(515.751 439.205 0.0)

Command: (vlax-curve-getDistAtPoint vla-obj pt)
nil

Command: (vlax-curve-getDistAtPoint vla-obj px)
14.12
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-8-19 21:57:13 | 显示全部楼层
最初由 Underway 发布
[B]Command: (setq pt (getpoint))
(516.64 442.693 0.0)

Command: (setq px (vlax-curve-getClosestPointTo vla-obj pt))
(515.751 439.205 0.0)

Command: (vlax-curve-getDistAtPoint vla-obj pt)
nil

Co... [/B]
  

关键是返回的点是用科学计数法表示的,
(setq pt (getpoint))
(506067.0 4.47268e+006 0.0)
根本不在这条线上,
用setq px (vlax-curve-getClosestPointTo vla-obj pt))
(506067.0 4.47268e+006 0.0)

返回的点也没在这条线上
(vlax-curve-getDistAtPoint vla-obj pt)
自然返回为空,
有没有一种好的方法?  不用科学计数法表示, 使误差更小些!
使这个点准确无误的在这条线上!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 13:34 , Processed in 0.321949 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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