iCAx开思网

标题: SW计错数?!? [打印本页]

作者: jxhaha    时间: 2007-1-3 11:32
标题: SW计错数?!?
众所周知,两轴相等长度的椭圆,其几何基本与圆形一样。

在SW画出一个两轴相长度都是100mm的椭圆,
再量度它的周长,就会发现并不是314.159...(pi*100),而是314.143...,
如果再开新草图,把刚才的椭圆“图原引用”出来就会是一个圆形,
量一下新圆形的周长,就会发现周长又会是正常的314.159...了。

原因是什么?SW故意的?跟内核有关?SW的臭虫?两轴相等长度的椭圆根本不等同于圆形?

希望大家齐来讨论一下,各抒己见,可让俺趁机增长知识,谢谢!


作者: w_hs    时间: 2007-1-3 12:03
试了一下,确实如闷大所说,看来还得闷大来解释谜团。
作者: foxblue    时间: 2007-1-3 12:41
与精度有关

我想是因为椭圆和圆的产生方式不一样

虽然我们觉得长短轴一样的椭圆就是圆

可能在几何学上,却不是这样
作者: foxblue    时间: 2007-1-3 12:42
据说这个是精度比较高的椭圆公式
算出来的结果却不是2派(小数点后面很远的地方不一样)

所以是否可以理解

当椭圆公式越精确

而长短轴相等时

椭圆周长同圆的周长差距越大呢?

[ 本帖最后由 foxblue 于 2007-1-3 12:46 编辑 ]
作者: jxhaha    时间: 2007-1-3 14:21
谢蓝狐兄参与讨论,让俺长见识了。
可是俺提出的例子误差都不算低啊,
100mm直径,周长相差0.016mm,
而公式推论的数值,误差非常小,相信超过小数后8位。

我们可以想象,两个像月饼大小的滚轴(一椭一圆),
旋转100圈后,其行程居然性差1.6mm,那就非常离谱了。

还有一点,既然正椭圆不等同圆形,
为什么SW会把正椭圆转换会变成圆形呢?
作者: gneful    时间: 2007-1-3 14:28
我认为圆应该是椭圆的一个特例

先看看椭圆定义:平面内与两个定点F1、F2的距离的和等于常数(大于|F1F2|)的点的轨迹叫做椭圆。
如果F1、F2是同一个点,那么圆的特性完全满足椭圆定义

再看看椭圆标准方程:(x^2/a^2)+(y^2/b^2)=1 (其中a为长轴,b为短轴)。
如果a=b,那么方程可以简化为 x^2+y^2=a^2,是个标准的圆方程
作者: gneful    时间: 2007-1-3 14:42
网上查了一下椭圆周长的计算公式,结果是这样的:
求图形的周长可以用微积分的方法,圆的周长就可以这么求出来。而对于一般的椭圆,它的积分式子可以写出来,但是却是积不出结果的。数学上已经可以证明:椭圆周长的积分式不可能写成初等函数的表达式。类似椭圆的周长的这一类积分被通称为椭圆积分,它的值一般可以查表得到。

看来椭圆周长计算没有标准公式,那么计算有误差就是可以理解到事情了。
SW的计算结果为什么误差比较大只能等开发人员来解释,不过转换实体的时候能自动转成圆也算是不错了。
作者: w_hs    时间: 2007-1-3 14:47
闷大出题,蓝狐朋友解答。
正如蓝狐朋友所说,计算精度也。
椭圆的面积计算有一个相当简单的解析式,即 πab。其中a、b分别是椭圆的长短半轴。
恰恰相反,椭圆的周长到目前为止还没有一个解析式可精确表示。刚才推导了一下,椭圆的周长 L 可由以下积分式得出:

[attach]585273[/attach]

其中 a、b 分别为高椭圆之长短半轴。

此式目前不能得到解析式,因此就有了不少近似算法,蓝狐朋友所列各式皆为目前流行的近似算法。虽然后面两式总体来说精度较高,但对不同的 a、b 比值,其精度也相差不小。自从电脑普及以来,还可采用数值算法来逼近椭圆周长,但也还是近似算法,只是计算点越多数值越精确。

[ 本帖最后由 w_hs 于 2007-1-3 14:49 编辑 ]
作者: w_hs    时间: 2007-1-3 14:58
原帖由 jxhaha 于 2007-1-3 14:21 发表
谢蓝狐兄参与讨论,让俺长见识了。
可是俺提出的例子误差都不算低啊,
100mm直径,周长相差0.016mm,
而公式推论的数值,误差非常小,相信超过小数后8位。

我们可以想象,两个像月饼大小的滚轴(一椭一圆) ...


误差确实较大,但是我们也不知道 SW 究竟采用何种算法,就无法说它精度应该达到多少了。也许它只用了不多的点作数值计算,那精度确实不会高。就像 SW 在带引导线的扫描中,舍不得取较多的截面(其实是怕太多占用计算机资源),因此扫描结果往往令人失望。
作者: xiaoxiao1008    时间: 2007-1-3 19:35
晕,都上升到理论高度了

作者: jxhaha    时间: 2007-1-3 19:45
兩大頂及高手(老G哥哥 與 不老叔叔)同時出現這個主題。
俺實在感到非常光榮!
作者: eriver_guo    时间: 2007-1-3 23:13
受教了,多谢!
作者: wangzonghe    时间: 2007-1-4 10:30
这样的问题,只好先倾听了。
作者: ltq59    时间: 2007-1-4 18:08
偶也晕
作者: asencwx    时间: 2007-1-4 18:38
只能是顶了,推敲不出什么来
作者: zhanglia1223    时间: 2007-1-5 10:12
看了高手的解说,认为应该是精度引起
但还有一奇怪的现象
当测量椭圆底面积时显示周边是314.15825470mm
当单独测量边线时显示长度是314.14315212mm
而当测量侧面面积则显示周边是628.30140682mm除以2的数值是314.15070341mm
为何同一个模型测量不同地方会得出不同的周边长度?难道SW在同一个草图中计算椭圆周长采用好几种方法?

[ 本帖最后由 zhanglia1223 于 2007-1-9 18:42 编辑 ]
作者: 阿呆卖瓜    时间: 2007-1-5 10:18
原帖由 foxblue 于 2007-1-3 12:42 发表
据说这个是精度比较高的椭圆公式
算出来的结果却不是2派(小数点后面很远的地方不一样)

所以是否可以理解

当椭圆公式越精确

而长短轴相等时

椭圆周长同圆的周长差距越大呢?


现在不回Email,搞理论了啊?

[ 本帖最后由 阿呆卖瓜 于 2007-1-5 10:20 编辑 ]
作者: 学者丁    时间: 2010-11-23 00:22
无论有多么精密的方法,精度问题都会存在,差别仅在于精度的大小。当生成椭圆对象,然后测量它的一些几何属性比如周长、面积时,实际上就涉及两种精度的问题:1、椭圆对象的建模精度;2、几何属性的分析精度。前面的讨论者似乎都有这样的假设(不知道是不是我的理解有误):SW的分析的结果是准确的。可是,没有任何证据可以证明SW的分析结果在任何情况下完美无缺。
实际上可以将SW生成的实体在其他软件中打开并测量相应的几何属性,那样你会发现,前面提到的那些结果似乎没有SW自己给出的结果差距那么大。

我的初步研究发现,SW的分析对于直线和圆来说几乎可以忽略精度问题,而对于一般曲线,样条曲线,方程式曲线,分析结果的精度则差强人意。

本帖最后由 学者丁 于 2010-11-23 00:24 编辑
作者: jxhaha    时间: 2010-11-23 00:42
学者丁也来讨论,俺非常荣幸啊!
作者: 学者丁    时间: 2010-11-23 01:00
jxhaha 发表于 2010-11-23 00:42
学者丁也来讨论,俺非常荣幸啊!

不敢当,发表一点非常不成熟的看法,请别见笑。
作者: honghushui    时间: 2010-11-23 08:25
jian简单试了一下,认同学者丁的分析
作者: cdh.2007    时间: 2010-11-23 13:12
看看是什么
作者: cdh.2007    时间: 2010-11-23 13:12
借楼主的贴,学习了




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3