找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2614|回复: 5

[几何] 三角形内心(角平分线交点)

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-10-16 15:49:07 | 显示全部楼层 |阅读模式
函数发布
函数名称: 三角形内心(角平分线交点)
调用格式: (XD::Geom:Triangleheart p1 p2 p3)
参数说明: 三角形三顶点
返回值:
函数简介: 三角形内心(角平分线交点)
函数来源: 原创
函数作者: newer
适用版本: 不限 XDRX API 
最后更新时间: 2014-10-16
备注: -
演示图片:

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

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

×
本帖最后由 newer 于 2014-10-16 16:07 编辑

  1. ;;三角形内心 (角平分线交点,内切圆圆心)
  2. (defun XD::Geom:Triangleheart (p1 p2 p3 / v1 v12 v13 v2 v21 v23)
  3.    (setq v13 (xdrx_vector_normalize (mapcar '- p3 p1))
  4.          v12 (xdrx_vector_normalize (mapcar '- p2 p1))
  5.          v1 (mapcar '+ v13 v12)
  6.          v23 (xdrx_vector_normalize (mapcar '- p3 p2))
  7.          v21 (xdrx_vector_normalize (mapcar '- p1 p2))
  8.          v2 (mapcar '+ v23 v21)   
  9.    )
  10.    (inters p1 (mapcar '+ p1 v1) p2 (mapcar '+ p2 v2) nil)
  11. )


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

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-10-16 20:05:06 | 显示全部楼层
  1. (defun triangle:heart (p1 p2 p3 / p11 p12 )
  2.   (setq p11 (c:cal "pld(p1,p3,abs(p1-p2))")
  3.           p22 (c:cal "pld(p3,p2,abs(p1-p3))")
  4.   )
  5.   (inters p1
  6.           (c:cal "(p2+p11)/2")
  7.           p3
  8.           (c:cal "(p1+p22)/2")
  9.   )
  10. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-10-16 21:17:20 | 显示全部楼层
放到一个表达式
  1. (defun ff (p1 p2 p3)
  2.   (inters p1
  3.           (c:cal "plt(p2,pld(p1,p3,abs(p1-p2)),0.5)")
  4.           p3
  5.           (c:cal "(p1+pld(p3,p2,abs(p1-p3)))/2")
  6.   )
  7. )

点评

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

使用道具 举报

发表于 2014-10-17 08:11:45 | 显示全部楼层

如上帖,一次完成
  1. (defun ff (p1 p2 p3)
  2.   (c:cal
  3.     "ill(p1,plt(p2,pld(p1,p3,abs(p1-p2)),0.5),p3,plt(p1,pld(p3,p2,abs(p1-p3)),0.5))"
  4.   )
  5. )

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

使用道具 举报

发表于 2014-10-17 16:58:08 | 显示全部楼层
本帖最后由 高山流水 于 2014-10-17 17:10 编辑

求三角形的中心,用角度求解效率可能比较高(当然用向量求解比较通用,可以用于空间)。

  1. (defun triheart  (p0 p1 p2 / f)
  2.   ;; by GSLS(SS) 2014.10.17
  3.   (setq f (lambda (p0 p1 p2 / d a a0)
  4.      (setq d (distance p0 p1)
  5.     a (- (setq a0 (angle p1 p0)) (angle p1 p2)))
  6.      (- a0 (/ (angle '(0 0) (list (* d (cos a)) (* d (sin a)))) 2.))))
  7.   (inters p1 (polar p1 (f p0 p1 p2) 1000.) p2 (polar p2 (f p1 p2 p0) 1000.) nil))
  8. ;; for test
  9. (defun c:test  (/ p0 p1 p2 ph)
  10.   (setq p0 (getpoint "\nSelect First Point of the triangle :")
  11. p1 (getpoint p0 "\nSelect Second Point of the triangle :")
  12. p2 (getpoint p1 "\nSelect Third Point of the triangle :"))
  13.   (if (and p0
  14.     p1
  15.     p2
  16.     (setq ph (triheart p0 p1 p2)))
  17.     (entmake (list (cons 0 "Point")
  18.      (cons 10 ph)
  19.      (cons 62 1))))
  20.   (princ))

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

使用道具 举报

已领礼包: 14个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 09:12 , Processed in 0.398688 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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