乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: Aftertouch

[编程交流] 折线凸出转换?

[复制链接]

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:30:57 | 显示全部楼层
不确定SetBulge和GetBulge方法是否与42组码保持相同的值,但随着LM:3p->bulge,任务变得更加简单:
 
  1. (vla-SetBulge plineObj vtx (LM:3p->bulge p1 p2 p3))
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 16:35:11 | 显示全部楼层
  1. ;; 3-Points to Bulge  -  M.R.
  2. (defun MR:3p->bulge ( p1 p2 p3 / mid asin clockwise m12 m23 c r )
  3.    (defun mid ( p1 p2 )
  4.        (mapcar '(lambda ( a b ) (/ (+ a b) 2.0)) p1 p2)
  5.    )
  6.    (defun asin ( x )
  7.        (cond
  8.            ((equal x 1.0 1e- (/ pi 2.0))
  9.            ((equal x -1.0 1e- (* 3.0 (/ pi 2.0)))
  10.            ((equal x 0.0 1e- 0.0)
  11.            ((equal x -0.0 1e- pi)
  12.            ((atan (/ x (sqrt (- 1.0 (* x x))))))
  13.        )
  14.    )
  15.    (defun clockwise ( p1 p2 p3 )
  16.        (minusp (- (* (- (car p2) (car p1)) (- (cadr p3) (cadr p1))) (* (- (car p3) (car p1)) (- (cadr p2) (cadr p1)))))
  17.    )
  18.    (setq m12 (mid p1 p2))
  19.    (setq m23 (mid p2 p3))
  20.    (setq c (inters m12 (polar m12 (+ (angle p1 p2) (* 0.5 pi)) 1.0) m23 (polar m23 (+ (angle p2 p3) (* 0.5 pi)) 1.0) nil))
  21.    (setq r (distance c p1))
  22.    (if (not (clockwise p1 p2 p3))
  23.        (if (<= (rem (+ pi pi (- (angle c p3) (angle c p1))) (+ pi pi)) pi)
  24.            ((lambda ( a ) (/ (sin a) (cos a))) (/ (asin (/ (distance p1 p3) r 2.0)) 2.0))
  25.            ((lambda ( b ) (/ 1.0 b)) ((lambda ( a ) (/ (sin a) (cos a))) (/ (asin (/ (distance p1 p3) r 2.0)) 2.0)))
  26.        )
  27.        (if (<= (rem (+ pi pi (- (angle c p1) (angle c p3))) (+ pi pi)) pi)
  28.            ((lambda ( a ) (- (/ (sin a) (cos a)))) (/ (asin (/ (distance p1 p3) r 2.0)) 2.0))
  29.            ((lambda ( b ) (- (/ 1.0 b))) ((lambda ( a ) (/ (sin a) (cos a))) (/ (asin (/ (distance p1 p3) r 2.0)) 2.0)))
  30.        )
  31.    )
  32. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:38:29 | 显示全部楼层
如果p2是cp,并且凸起在p1和p3之间计算(p1和p3都在cp圆上),那么凸起公式是什么?
 
回复

使用道具 举报

gsc

33

主题

90

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
165
发表于 2022-7-5 16:45:29 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 21:07 , Processed in 0.518292 second(s), 59 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表