乐筑天下

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

为什么两个圆弧不能重合呢?

[复制链接]

1

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
11
发表于 2004-5-27 03:02:00 | 显示全部楼层 |阅读模式
该程序画的是蜗壳内壁型线,奇怪的是,第2条圆弧终点和第3条的起点始终不能重合,百思不得其解,所以来这向高人求助,望各位大大帮帮忙
谢谢了
(defun c:woke()
         (progn
         
         ;输入数据
        (setq p0 (getpoint "\n 请输入基准点:"))
         (setq s (getreal "\n 绘图比例:"))
        (if (null s) (setq s 0.1))
        (setq r (getreal "\n 请输入进口半径R:"))
        (if (null r) (setq r 750))
        (setq r1 (getreal "\n 请蜗壳输入半径R1:"))
        (if (null r1) (setq r1 818))
        (setq r2 (getreal "\n 请输入蜗壳半径R2:"))
        (if (null r2) (setq r2 954))
        (setq r3 (getreal "\n 请输入蜗壳半径R3:"))
        (if (null r3) (setq r3 1090))
        (setq r4 (getreal "\n 请输入蜗壳半径R4:"))
        (if (null r4) (setq r4 1226))
         (setq c (getreal "\n 蜗壳出口长度C:"))
        (if (null c) (setq c 760))
        (setq l (getreal "\n 请输入蜗壳内壁间距L:"))
        (if (null l) (setq l 544))
        (setq a (/ l 4))
       
        (setq px (car p0)
                                                 py (cadr p0)
                                                 pz (caddr p0))
;定义等边基点坐标
(setq xa1 (+ px (/ a 2))
                                         ya1 (+ py (/ a 2))
                                         xa2 xa1
                                         ya2 (- py (/ a 2))
                                         xa3 (- px (/ a 2))
                                         )
                                         (setq ya3 ya2)
                                         (setq xa4 xa3)
                                         (setq ya4 ya1)
                                         ;蜗壳个弧线端点坐标
                                 (setq xb1 (+ px (+ r (- l c))))
        (setq yb1 (+ py (+ (sqrt (- (* r1 r1) (* (+ (+ r (- l c)) (/ a 2)) (+ (+ r (- l c)) (/ a 2))))) (/ a 2))))
                                 (setq xb2 px)
       
                                 (setq yb2 (+ py (+ (sqrt (- (* r1 r1) (* (/ a 2) (/ a 2)))) (/ a 2))))
                                 (setq xb3 (- px (sqrt (- (* r2 r2) (* (/ a 2) (/ a 2))))))
                                 (setq yb3 py)
                                 (setq xb4 px)
                                 (setq yb4 (- py (sqrt (- (* r3 r3) (* (/ a 2) (/ a 2))))))
                                 (setq xb5 (+ px (+ r l)))
                                 (setq yb5 py )
                                 (setq xc1 xb1);(+ (- (+ px (sqrt (- (* r4 r4) (* (/ a 2) (/ a 2))))) c) (/ a 2))
                                 (setq yc1 (+ py r4))
                                 (setq xc2         xb5);(+ (+ px (sqrt (- (* r4 r4) (* (/ a 2) (/ a 2))))) (/ a 2)))
                                 (setq yc2 yc1)
                                         
        (setq a1 (list xa1 ya1 pz)
                                                 a2 (list xa2 ya2 pz)
                                                 a3 (list xa3 ya3 pz)
                                                 a4 (list xa4 ya4 pz)
                                                 b1 (list xb1 yb1 pz)
                                                 b2 (list xb2 yb2 pz)
                                                 b3 (list xb3 yb3 pz)
                                                 b4 (list xb4 yb4 pz)
                                                 b5 (list xb5 yb5 pz)
                                                 c1 (list xc1 yc1 pz)
                                                 c2 (list xc2 yc2 pz))
                                                 (command "arc" b1 "c" a4 b2 "")
                                                 (command "arc" b2 "c" a3 b3 "")
                                                                 (command "arc" b3 "c" a2 b4 "")
                 (command "arc" b4 "c" a1 b5 "")
                 (command "line" a1 a2 ""
                                                                                                                                 "line" a2 a3 ""
                         "line" a3 a4 ""
                "line" a4 a1 ""
                "line" c1 b1 ""
                "line" c1 c2 ""
                                                                                                                         "line" c2 b5 ""
                "circle" p0 r
                )
       
       
       
        ))
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-5-27 07:52:00 | 显示全部楼层
可能是你的计算问题,你用起点、中心点、终点的画法不一定按你要求画的,起点和中心点选择后,终点的位置就限制在了这个圆上,你计算出的点如果不是这样,就回导致这种结果
回复

使用道具 举报

15

主题

32

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2004-5-27 09:01:00 | 显示全部楼层
两位也太厉害了,夜里还在战斗吗?
btlelite                                 2004-5-27 3:02:43
meflying         2004-5-27 7:52:30
回复

使用道具 举报

xhf

20

主题

254

帖子

9

银币

后起之秀

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

铜币
334
发表于 2004-5-27 09:43:00 | 显示全部楼层
在程序前面部分关闭捕捉模式试试看。
(setq os (getvar "osmode"))
(setvar "osmode" 0)
......
(setvar "osmode" os)
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-5-27 11:04:00 | 显示全部楼层

复制代码
回复

使用道具 举报

1

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
11
发表于 2004-5-27 13:00:00 | 显示全部楼层
计算没有问题,也和计算无关,因为上一个弧的终点就是下一个弧的起点;
                                 不知道会不会和捕捉有关,我试试
                                 谢谢指导
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-5-27 13:11:00 | 显示全部楼层
点是没错,可你这样的圆弧是不存在的,起点确定,圆心确定,终点不是随便哪儿都可以的,你可以用手在你的图上画画,起点,终点都按你的给定点,看圆心能不能到你要求的地方
回复

使用道具 举报

1

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
11
发表于 2004-5-27 13:31:00 | 显示全部楼层
哦,对啊,有道理,我再检查一下
回复

使用道具 举报

1

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
11
发表于 2004-5-27 13:42:00 | 显示全部楼层
确实是设计本身误差造成的,看来得换方法了.
我想如果追求圆弧能接合到一起,用 起点,终点半径应该可以解决,但是出现了一个新的问题,画不出来啊,也不知道是什么原因,请问一下,用这三个参数应该怎么画呢?
回复

使用道具 举报

1

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
11
发表于 2004-5-27 13:56:00 | 显示全部楼层
我想让它们的点重合,圆心位置另外做修正,我应该怎么做呢
不是我不愿意动脑筋,我是个初学者,想不出好点子了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-17 10:27 , Processed in 1.999853 second(s), 72 queries .

© 2020-2025 乐筑天下

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