作者LPH66 (-858993460)
看板puzzle
标题[中译] ProjectEuler 363 Bézier Curves
时间Mon Dec 19 07:55:43 2011
363. Bézier Curves
http://projecteuler.net/problem=363
所谓的 cubic Bézier curve (三次贝兹曲线) 是由四点个 P0, P1, P2 和 P3 定义的。
这个曲线是这样被定义的:
分别在线段 P0P1, P1P2, P2P3 上取点 Q0, Q1, Q2
使得 P0Q0/P0P1 = P1Q1/P1P2 = P2Q2/P2P3 = t;
分别在线段 Q0Q1, Q1Q2 上取点 R0, R1
使得 Q0R0/Q0Q1 = Q1R1/Q1Q2 = t;
在线段 R0R1 上取点 B
使得 R0B /R0R1 = t。
当 Q0 在线段 P0P1 上移动时(即当 t 取遍 0 到 1 的所有实数时),
B 所经过的轨迹即为由 P0, P1, P2, P3 定义的贝兹曲线。
网页中的 Applet 可以让你拖动 P0, P1, P2, P3 及 Q0 的位置来更加了解其构成。
容易得知这样子得到的曲线会和线段 P0P1 切於 P0, 和线段 P2P3 切於 P3。
考虑由 P0 = (1,0), P1 = (1,v), P2 = (v,1), P3 = (0,1) 定义的贝兹曲线
来近似一个 1/4 圆弧。
v 的值选得让这个曲线和 OP0, OP3 两个直线所围成的面积为π/4 (即 1/4 单位圆面积)。
问这曲线的长度相对於一个 1/4 圆弧多了多少百分点?
也就是说,若 L 为这样的曲线长度,求 100 * (L - π/2) / (π/2)。
答案四舍五入到小数点第十位。
--
连续两周难题所以这一周是很数学的题目 XD
(我只抢到第 66 名, 前 50 都没进... u 大倒是进了第 25)
基本上这正是现在一些地方 (例如 Flash) 里面使用贝兹曲线近似圆的方式
(之所以是近似是因为圆无法分段用贝兹曲线描述)
在那里一个圆会被描述成由像这样的四条 1/4「圆弧」所组成的
不过当你求出答案之後就会发现面积相等时长度差其实非常微小
因此在我们看起来它就和一个 1/4 圆弧没什麽两样
除非放到非常大的地方时才会感觉有差异
而这样做有计算上的好处
在画圆时的参数式不是 sin 和 cos 而是一个三次多项式
(这个多项式正是这种贝兹曲线被称做「三次贝兹曲线」的原因
在计算这题时因为要求弧长所以必须求出来 就不多说了)
在计算时间和准确度上能够更好
同样的可以定义其他次数的贝兹曲线
原题目里的 R0 和 R1 的轨迹正各是一个二次贝兹曲线
话说回来, 其实平常在用的近似圆的贝兹曲线不是题目这一条
而是让曲线中点在圆上的那一条 (v = 4(√2 - 1)/3)
这个面积多了约万分之三 长度多了约万分之一点五 但是计算比题目这一条方便多了
--
话说 362 题的文章怎麽消失了 0.0?
--
い
ああオレたちには见えてるモノがあるbデ きっと谁にも夺われないモノがあるはずさ
け
开口一番一虚一実跳梁跋扈形影相吊yュL羊头狗肉东奔西走国士无双南柯之梦 歪も
ぶ
意味がないと思えるコトがある ラPきっとでも意図はそこに必ずある んの
く
依依恋恋空前絶後疾风怒涛有无相生 ラH急転直下物情骚然愚者一得相思相爱 だが
ろ
无意味じゃない ラ6あの意図が 恋た
で
有为転変死生有命苍天已死黄天当立 !!6五里雾中解散宣言千错万综则天去私 のり
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.28.91
※ 编辑: LPH66 来自: 140.112.28.91 (12/19 08:07)
1F:推 puzzlez:难道是我按错了什麽吗?应该不会吧?@@" 12/19 08:18
2F:推 babufong:真的不见了耶@@ 12/19 12:42
3F:推 puzzlez:那可以再补回去吗? @@ 12/19 13:09
4F:推 babufong:砍掉的文章会收到哪个版吗 帕索要不要去翻找看看- - 12/19 19:28
5F:推 isnoneval:用贝兹曲线趋近 1/4 圆就是 cos/sin 泰勒展开至 x^3 项 12/20 07:30
6F:→ LPH66:闲聊一下, 这周终於把50题质数的成就给冲出来了... 12/22 18:32
7F:→ LPH66:这一阵子比较忙所以幸运数成就只好暂时放着了 12/22 18:33
8F:→ LPH66:比较囧的是不管是下一题质数还是下一题幸运数都是 367 12/22 18:34
9F:→ LPH66:还要等一个月... 12/22 18:34
10F:推 babufong:成就已经随缘了 走一题是一题XD 12/22 18:57