找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 729|回复: 7

[求助] [求助]:弧线问题?

[复制链接]
发表于 2003-8-29 16:40:59 | 显示全部楼层 |阅读模式

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

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

×
弧线代码是用圆心,起点角度,终点角度,法线表示的,可我太笨,不知道怎么用这几个数字求其端点坐标.原因是我不知道怎么定义0角度方向.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-8-29 19:07:30 | 显示全部楼层
10 中心点
40 半径
50 起始角
51 终止角
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-30 20:13:39 | 显示全部楼层
:(这个我是知道的啊,可我不知道怎么用法线和角度、半径、中点计算坐标呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

发表于 2003-8-30 22:20:58 | 显示全部楼层
取得圆心坐标再根据起始角和终止角及半径就可以计算得到起点坐标和终点坐标啊。不过用lisp来判断其为优弧还是劣弧很难,我也不会,不知那位高手知道??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-31 00:01:14 | 显示全部楼层
计算坐标很容易啊,(SETQ  p1 (polar  PC  ang1 R))
p1为起点坐标   PC 为圆心坐标,ang1为起点角度,R为半径

终止角度减去起始角度 如果结果小余0或者大于2PI就加减2pi处理,然后根据角度差不就知道是优弧还是劣弧了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-8-31 12:27:35 | 显示全部楼层

Re: [求助]:弧线问题?

最初由 ago9999 发布
[B]弧线代码是用圆心,起点角度,终点角度,法线表示的,可我太笨,不知道怎么用这几个数字求其端点坐标.原因是我不知道怎么定义0角度方向. [/B]

在晓东工具箱下 \XDSoft\Lisp\plan.lsp 中的一段

  1. ;;道路曲线要素标注(通用程)
  2. (defun c:eee (/ ee j1 j2 j tt r l e p0 p1 z1 z2)
  3.                                         ; (setvar "cmdecho" 0)
  4.   (setq ee (entsel "\nSelect arc: "))
  5.   (while ee
  6.     (setq ee (entget (car ee)))
  7.     (setq j1 (cdr (assoc 50 ee))
  8.           j2 (cdr (assoc 51 ee))
  9.           r  (cdr (assoc 40 ee))
  10.     )
  11.     (if        (> j2 j1)
  12.       (setq j (- j2 j1))
  13.       (setq j (+ (dtr 360) (- j2 j1)))
  14.     )
  15.     (setq tt (* r (/ (sin (/ j 2)) (cos (/ j 2)))))
  16.     (setq l (abs (* r j)))
  17.     (setq e (* r (- (/ 1 (cos (/ j 2))) 1)))
  18.     (setq p0 (getpoint "\n The point: "))
  19.     (setvar "blipmode" 0)
  20.     (setq j (angtos j 1 5))
  21.     (setq z (substr j 1 1))
  22.     (setq n (strlen j))
  23.     (setq th 2)
  24.     (while (< th n)
  25.       (progn
  26.         (setq z1 (substr j th 1))
  27.         (if (= z1 "d")
  28.           (setq z1 "%%d")
  29.         )
  30.         (setq z (strcat z z1))
  31.       )
  32.       (setq th (1+ th))
  33.     )
  34.     (command "text"
  35.              p0
  36.              (* 3 bl)
  37.              ""
  38.              (strcat "R=" (rtos (/ r 1000) 2 2))
  39.     )
  40.     (command "text"
  41.              (setq p1 (polar p0 (dtr 270) (* 5 bl)))
  42.              (* 3 bl)
  43.              ""
  44.              (strcat "a=" z)
  45.     )
  46.     (command "text"
  47.              (setq p1 (polar p1 (dtr 270) (* 5 bl)))
  48.              (* 3 bl)
  49.              ""
  50.              (strcat "L=" (rtos (/ l 1000) 2 3))
  51.     )
  52.     (command "text"
  53.              (setq p1 (polar p1 (dtr 270) (* 5 bl)))
  54.              (* 3 bl)
  55.              ""
  56.              (strcat "T=" (rtos (/ tt 1000) 2 3))
  57.     )
  58.     (command "text"
  59.              (setq p1 (polar p1 (dtr 270) (* 5 bl)))
  60.              (* 3 bl)
  61.              ""
  62.              (strcat "E=" (rtos (/ e 1000) 2 3))
  63.     )
  64.     (setq p0 (polar p0 pi bl))
  65.     (setvar "plinewid" 0)
  66.     (command "pline"
  67.              p0
  68.              (setq p0 (polar p0 (dtr 90) (* 4 bl)))
  69.              (setq p0 (polar p0 0 (* 28 bl)))
  70.              (setq p0 (polar p0 (dtr 270) (* 25 bl)))
  71.              (setq p0 (polar p0 pi (* 28 bl)))
  72.              "c"
  73.     )
  74.     (setq ee (entsel "\nSelect arc: "))
  75.   )
  76.   (setvar "blipmode" 1)
  77.   (redraw)
  78.   (princ)
  79. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-9-2 11:30:36 | 显示全部楼层
应该是第五贴的方法.
(polar 圆心 起始角 半径)为起点的坐标.
当起始角大于中止角时,夹角为 (中止角-起始角+2*pi)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 19:00 , Processed in 0.178464 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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