找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 665|回复: 14

[求助] 复杂的几何算法—求斜矩形的四角点位

[复制链接]

已领礼包: 6881个

财富等级: 富甲天下

发表于 2019-3-6 09:52:58 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 ynhh 于 2019-3-6 10:13 编辑

求斜矩形的四角点位
红色正矩形框为已知并固定的尺寸
ABCD为倾斜的矩形,并且四角点各自在红色矩形框上
AB平行DC并且长度相等
斜矩形中的
BC
AD
两个长度相等但是可以变化的


求:ABCD点位置?
谢谢大师的指点
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:求斜矩形的四角点位.zip 
下载次数:6  文件大小:12.38 KB 
下载权限: 不限 以上  [免费赚D豆]


求斜矩形的四角点位.gif

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

已领礼包: 6434个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-3-6 11:00:06 | 显示全部楼层
求AB 两个端点的垂线和红色矩形的交点,连起来就是

点评

谢谢大师的指点 能不能写个代码来 验证一下 谢谢  详情 回复 发表于 2019-3-6 11:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

 楼主| 发表于 2019-3-6 11:17:14 | 显示全部楼层
Lisphk 发表于 2019-3-6 11:00
求AB 两个端点的垂线和红色矩形的交点,连起来就是

谢谢大师的指点
能不能写个代码来
验证一下
谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 166个

财富等级: 日进斗金

发表于 2019-3-7 09:14:08 | 显示全部楼层
像这样?
GIF-20190306.gif

点评

你这应不是提前标注好C=50吧 能不能发代码来学习分享一下 你标价分享 谢谢  详情 回复 发表于 2019-3-7 11:04
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

 楼主| 发表于 2019-3-7 11:04:10 | 显示全部楼层

你这应不是提前标注好C=50吧
能不能发代码来学习分享一下
你标价分享
谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-3-7 12:59:40 | 显示全部楼层
ynhh 发表于 2019-3-7 11:04
你这应不是提前标注好C=50吧
能不能发代码来学习分享一下
你标价分享

他是得到结果了,然后画出标注,再运行次,让你看清楚。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 166个

财富等级: 日进斗金

发表于 2019-3-7 13:27:33 | 显示全部楼层
源码

[sell=3]
  1. (defun c:tt2 ( / p1 p2 c p0 pmin pmax a b a1 a2 b1 b2 tf
  2.              p1-1 p1-2 p1-3 p1-4 )
  3.     (setq p1 (getpoint "\nP1:")
  4.           p2 (getcorner p1 "\nP2:")
  5.           c (getreal "\nc:"))
  6.     (setq p0 (K:point-mia (list p1 p2))
  7.           pmin (car p0)
  8.           pmax (cadr p0)
  9.           b (- (car pmax) (car pmin))
  10.           a (- (cadr pmax) (cadr pmin))
  11.           a1 1e-4)
  12.     (while (and
  13.                (<= a1 (/ a 2))
  14.                (not (setq TF (equal
  15.                         (* a1 (- a a1))
  16.                         (* (setq b2 (K:triangle-one c a1))
  17.                            (- b b2))
  18.                         1e-1))))
  19.         (setq a1 (+ a1 1e-4))
  20.         );_while
  21.     (if (and a1 b2 tf)
  22.         (progn
  23.             (setq b1 (- b b2)
  24.                   a2 (- a a1))
  25.             (setq p1-1 (mapcar '+
  26.                                pmin
  27.                                (list b1
  28.                                      0))
  29.                   p1-2 (mapcar '-
  30.                                pmax
  31.                                (list 0
  32.                                      a2))
  33.                   p1-3 (mapcar '-
  34.                                pmax
  35.                                (list b1
  36.                                      0))
  37.                   p1-4 (mapcar '+
  38.                                pmin
  39.                                (list 0
  40.                                      a2))
  41.                   )
  42.             (command "PLINE" p1-1 p1-2 p1-3 p1-4 "C")
  43.             ) ;_progn
  44.         (prompt "\n**NO FOUND**")
  45.         );_if
  46.     (prompt "\n**END**")
  47.     (princ)
  48.     ) ;_END

  49. (defun K:point-mia ( pts / )
  50.     (mapcar
  51.         (function
  52.             (lambda (operation)
  53.                 (apply 'mapcar (cons operation pts))
  54.                 )
  55.             )
  56.         '(min max)
  57.         )
  58.     );_END

  59. (defun K:triangle-one ( a b / )
  60.     (sqrt (abs (- (expt a 2)
  61.                   (expt b 2))))
  62.     );_END
[/sell]
找不到回复可见
将就收个费吧

点评

昨晚试了 的确精确好用 就是有点慢费时间 衷心感谢您 向您致敬 还有点小请求 1、能不能把精度改小一点(或是误差再大一点如0.01),让速度快一些 2,如何设置能让斜矩形也可成为右边高左边低(也就是现在的左  详情 回复 发表于 2019-3-8 09:23
谢谢您的指点 我晚上学习领会一下 衷心感谢您  详情 回复 发表于 2019-3-7 16:51
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

 楼主| 发表于 2019-3-7 16:51:03 | 显示全部楼层
naruto018 发表于 2019-3-7 13:27
源码

**** 本内容需购买可见 ****

谢谢您的指点
我晚上学习领会一下
衷心感谢您
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

 楼主| 发表于 2019-3-8 09:23:08 | 显示全部楼层
naruto018 发表于 2019-3-7 13:27
源码

**** 本内容需购买可见 ****

昨晚试了
的确精确好用
就是有点慢费时间
衷心感谢您
向您致敬

还有点小请求
1、能不能把精度改小一点(或是误差再大一点如0.01),让速度快一些
2,如何设置能让斜矩形也可成为右边高左边低(也就是现在的左右朝向互换)

谢谢您高超的技术指点

点评

1.只要调高(setq a1 (+ a1 1e-4))的1e-4-->1e-2 以及稍微改(equal 的误差值1e-1-->1e0 就可以了 不然可以试试用长或宽以一定比例做为递增值 以防止长或宽过大 导致运算过久 2.简单的左右相反 只要改 p1-1  详情 回复 发表于 2019-3-8 10:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 166个

财富等级: 日进斗金

发表于 2019-3-8 10:52:06 | 显示全部楼层
ynhh 发表于 2019-3-8 09:23
昨晚试了
的确精确好用
就是有点慢费时间

1.只要调高(setq a1 (+ a1 1e-4))的1e-4-->1e-2
以及稍微改(equal 的误差值1e-1-->1e0
就可以了
不然可以试试用长或宽以一定比例做为递增值
以防止长或宽过大
导致运算过久

2.简单的左右相反
只要改
p1-1 p1-2 p1-3 p1-4的点计算中
a2改a1
b1改b2

最近有点忙
没有太多的研究

点评

谢谢您 祝您 工作顺利 身体健康  详情 回复 发表于 2019-3-8 13:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-3-8 11:11:25 | 显示全部楼层
ynhh 发表于 2019-3-8 09:23
昨晚试了
的确精确好用
就是有点慢费时间

不复杂的操作,怎么会慢呢?

点评

不是操作慢 是运算费时间 电脑反应慢 谢谢您  详情 回复 发表于 2019-3-8 13:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

 楼主| 发表于 2019-3-8 13:17:51 | 显示全部楼层
Lisphk 发表于 2019-3-8 11:11
不复杂的操作,怎么会慢呢?

不是操作慢
是运算费时间
电脑反应慢
谢谢您
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6881个

财富等级: 富甲天下

 楼主| 发表于 2019-3-8 13:19:42 | 显示全部楼层
naruto018 发表于 2019-3-8 10:52
1.只要调高(setq a1 (+ a1 1e-4))的1e-4-->1e-2
以及稍微改(equal 的误差值1e-1-->1e0
就可以了

谢谢您
祝您
工作顺利
身体健康
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 07:45 , Processed in 0.473409 second(s), 69 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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