momo电子书

手机浏览器扫描二维码访问

第五十三章 比例切割 算法初成(第2页)

终于,陈东风在大年三十前把这套他自己命名的比例切割算法给设计出来了。

灵感来自于华国历史上著名的数学家祖冲之的割圆术,割圆术目的是等分圆之后取得正多边形,而他的比例切割是取一个特定的比例来逼近一个特殊的曲线。

简单来讲比例切割算法(以一次贝塞尔曲线为例)的基本观点是选择在AB中的一个点C,C将AB分为u:1-u(A到C的距离与AB之间的距离之比是u),让我们找到决定C在哪里的方法。

从A到B的向量是B-A。

因为u是在0和1之间的比率,点C位于u(B-A)。

将A的位置加以考虑,点C为A+u(B-A)=(1-u)A+uB。

因此,对于给定的u,(1-u)A+uB是在A和B之间的点C,将AB分为u:1-u的两段。

更加具有普遍性的比例切割算法的想法如下是假设我们想要找到C(u),u在[0,1]中。

由第一个多段线P0-P1-P2-P3...-Pn开始,利用上面的法则找到在线段上的点P1i,P1i在P0i到P0(i+1)的连线上并且将这段线分为u:1-u的两部分。

依次地,我们可以得到n个点10,11,12,...,1(n-1),他们定义了一个新的多段线,一共有n-1段。

新点由1i进行标记,再次利用上面的规则我们可以得到第二个多段线,具有n-1个点(20,21,...,2(n-2))和n-2条边。

从这个多段线开始,进行第三次,得到新的多段线,由n-2个点30,31,...,3(n-3)和n-3条边组成。

重复这个过程n次得到一个点n0。

以上想法只是给定了比例切割想法的几何解释,而实际计算需要一个具体的计算方法。

首先,对于每一对临近的控制点,可以画出一条右上方和右下方的箭头(类似于杨辉三角),并且在两个箭头的交点处写下一个新点。

例如相邻的两个点分别为ij和i(j+1),新点是(i+1)j,右下方(相对应的左下方)的箭头表示将其尾数ij(相对应的为i(j+1))乘以1-u(相对应的乘以u),新的点是两个的和。

因此,从初始的第0列开始,我们计算第1列。

之后从第1列得到第2列。

最终,在n次计算之后我们最终到达了一个单个的点n0并且这个点就是在曲线上的点。

下面的算法总结了上面我们讨论的内容,输入的是具有n+1个点的数列P和在0到1之间的u,最终得到在贝塞尔曲线上的点C(u)。

这个计算过程可以用递归的方法表示,对于j=0,1,...,n用P0,j表示Pj,也就是P0,j是第0列的第j项元素,在第i列计算第j项如下:P(i,j)=(1-u)P(i-1,j)+uP(i-1,j+1),(i=1,2....,n;j=0,1,2...,n-i)

元素Pi,j是(1-u)Pi-1,j(左上方元素)和uPi-1,j+1(左下方元素)的和,最终的结果(在曲线上的点)是Pn,0.在这种想法的基础上,通过编程就可以得到基本的算法程序。

在这个基本算法的基础上,陈东风还需要对螺旋线、球面螺旋线、双弧外摆线和星行线、心脏线、圆内螺旋线、正弦曲线、太阳线和费马曲线等等几百种曲线给出需要选定的控制点数量和控制比例u。

这个工作如果没有计算机的帮助的话,估计他这辈子都得耗在这上面了。

“好在,通用的算法已经计算出来了,可能有迭代算法效率的不高的问题,但是计算机应该可以克服。”

陈东风一边自言自语,一边站了起来,往窗外一看天快黑了,正好肚子有点饿,把桌子上堆成小山的草稿纸整理下后,就出了房间。

热门小说推荐
抓个妖狐当小妾

抓个妖狐当小妾

绝美狐妖太迷人,掳到家里宠起来。奉师命下山执行艰难任务,有了美妖相伴,日子过得逍遥似神仙...

大讼师

大讼师

杜九言穿越占了大便宜,不但白得了个儿子,还多了个夫君。夫君太渣,和她抢儿子。她大讼师的名头不是白得的。王爷!杜九言一脸冷漠,想要儿子,咱们公堂见!大周第一奇案名满天下的大讼师要和位高权重的王爷对簿公堂,争夺儿子抚养权。三司会审,从无败绩的大讼师不出意料,赢的漂亮。不但得了重夺儿子的抚养权,还附赠王爷的使用...

情不渡我

情不渡我

我曾甘于当个金丝雀,被叶寒遇娇养了四年。等我失去翅膀,不再会飞时,才知道男人薄情起来,根本记不得你是谁。他转身一变,要当我姐夫。我设计毁了了他婚礼。我和他有着算不清的账,有情,也有恨。我一生最大的错误就是爱上了他,却也不曾后悔。我只问苍天为何情不渡我,要渡他!...

露水夫妻

露水夫妻

露水夫妻...

蜀山笑

蜀山笑

别人都是玩游戏,我却是被游戏玩难道是俺人品太好,所以蜀山服务器妒嫉了?不报此仇,俺下辈子就投胎做男人话说俺在游戏里真的成了男人-_-—受蛤蟆大大的蜀山影响写了这本书,希望不会被蛤蟆大大鄙视蜀山笑书友群46439206...

每日热搜小说推荐