明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 584|回复: 6

[源码] 用单点坐标复制或移动或计算求另一点

[复制链接]
发表于 2021-12-20 09:55:07 | 显示全部楼层 |阅读模式
本帖最后由 ynhh 于 2021-12-20 11:30 编辑

用单点坐标复制或移动或计算求另一点

已知三点: A,P1,P2

未知点 B 与 P2 和 A 与 P1 的相对关系相同

求 B点? 是用复制还是移动还是什么方法?

谢谢


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2021-12-20 11:23:08 | 显示全部楼层

我一直以为用复制或移动的方法,应更简单一些,以前好象见过,但一下找不到方法了。
还是老老实实的用你说的方法写一个:
方法比较笨,见笑了。
(defun c:tt ()
(setq DQBZ (getvar "OSMODE"));获取当前捕捉
(SETVAR "OSMODE" 15);设置捕捉系统变量
(setq ptA (getpoint "\n目标点 A")
pt1 (getpoint "\n基点 1:")
pt2 (getpoint pt1 "\n基点 2:")
)
(setq alph (angle pt1 ptA));引出两点的弧度alph
(setq alf (* 180.0 (/ alph pi)));求出角度值alf
(setq le (distance pt1 ptA));两点间距离
(setq ptB (polar pt2 alph le));求出未知点
(SETVAR "OSMODE" 0);设置捕捉系统变量为0 即关闭捕捉
(command "point" ptB "");画点 应事先关闭捕捉
(SETVAR "OSMODE" DQBZ);恢复之前捕捉
)
发表于 2021-12-20 13:43:19 | 显示全部楼层
本帖最后由 lijiao 于 2021-12-20 13:45 编辑

(setq b (mapcar '(lambda(x y z) (- (+ x y) z)) a pt2 pt1))或者
(setq b (mapcar '+ a (mapcar '- pt2 pt1)))
 楼主| 发表于 2021-12-20 14:20:10 | 显示全部楼层
lijiao 发表于 2021-12-20 13:43
(setq b (mapcar '(lambda(x y z) (- (+ x y) z)) a pt2 pt1))或者
(setq b (mapcar '+ a (mapcar '- pt2  ...

谢谢您的指导,完全正确
您这太高大上了,简洁到难以想象。
谢谢您。
发表于 2021-12-20 15:01:45 | 显示全部楼层
(polar A (angle p1 p2)(distance p1 p2))
 楼主| 发表于 2021-12-20 15:17:06 | 显示全部楼层
xyp1964 发表于 2021-12-20 15:01
(polar A (angle p1 p2)(distance p1 p2))

更简洁的组合方式,还没有自变量,不错
谢谢院长
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 01:18 , Processed in 0.464222 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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