ProjectEuler 363 Bézier Curves - 拼圖

Erin avatar
By Erin
at 2011-12-19T07:55

Table of Contents


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きっと誰にも奪われないモノがあるはずさ
開口一番一虚一実跳梁跋扈形影相弔yL羊頭狗肉東奔西走国士無双南柯之夢 歪も
ぶ  意味がないと思えるコトがあるPきっとでも意図はそこに必ずある んの
依依恋恋空前絶後疾風怒濤有無相生H急転直下物情騷然愚者一得相思相愛 だが
無意味じゃない6あの意図 恋た
有為転変死生有命蒼天已死黄天當立 !!6五里霧中解散宣言千錯万綜則天去私 のり

--
Tags: 拼圖

All Comments

Elizabeth avatar
By Elizabeth
at 2011-12-20T22:09
難道是我按錯了什麼嗎?應該不會吧?@@"
Anthony avatar
By Anthony
at 2011-12-20T23:31
真的不見了耶@@
Sarah avatar
By Sarah
at 2011-12-23T21:41
那可以再補回去嗎? @@
Lauren avatar
By Lauren
at 2011-12-25T15:14
砍掉的文章會收到哪個版嗎 帕索要不要去翻找看看- -
Madame avatar
By Madame
at 2011-12-28T11:07
用貝茲曲線趨近 1/4 圓就是 cos/sin 泰勒展開至 x^3 項
Ursula avatar
By Ursula
at 2012-01-01T11:45
閒聊一下, 這週終於把50題質數的成就給衝出來了...
Madame avatar
By Madame
at 2012-01-01T22:54
這一陣子比較忙所以幸運數成就只好暫時放著了
Puput avatar
By Puput
at 2012-01-03T10:52
比較囧的是不管是下一題質數還是下一題幸運數都是 367
還要等一個月...
Faithe avatar
By Faithe
at 2012-01-04T02:48
成就已經隨緣了 走一題是一題XD

歲末小板聚之秘密盒不見了

Skylar Davis avatar
By Skylar Davis
at 2011-12-17T22:24
這次板聚有兩個帥哥、兩個型男、 兩個替代役、兩個愛買益智玩具、 兩個愛吃速食等人到場。 本來我可以很準時到的, 但秘密盒不在我以為的那個地方, 結果整整花掉我兩個小時的時間, 更慘的是還沒找到。 雖然反復的安慰自己反正也很少在玩, 就算遺失也沒關係,但還是有一點不甘心。 老闆和老葉都以為那個「找不到」是 ...

一個有趣的解謎網站 www.rankk.org

Todd Johnson avatar
By Todd Johnson
at 2011-12-16T23:40
※ [本文轉錄自 Python 看板 #1EwBjtqy ] 作者: autumned (autumned) 看板: Python 標題: [閒聊] 一個有趣的解謎網站 時間: Wed Dec 14 23:06:28 2011 www.rankk.org 如題 雖然不像python challenge全 ...

禮拜六圓山育樂益玩之旅

Christine avatar
By Christine
at 2011-12-15T00:02
百年即將進入尾聲,歲末板遊慶聖誕。 圓山育樂中心益玩之旅— 時間12月17日早上11點到下午三點, 集合地點圓山站一號出口,門票全票30元半票15元。 當天帕索和企鵝均會到場伴遊,有志一同者請站內信報名參加,歡迎共襄盛舉。 更多圓山益玩資訊請查閱 #1Egzt ...

梯形切割拼成平行四邊形

Xanthe avatar
By Xanthe
at 2011-12-14T23:05
這題目出現在我女兒小五的數學習作 將一個等腰梯形切割成數塊,拼成平行四邊形 除了攔腰切開中線之外,還有別的方法嗎? __________ _________________ \________/ ----andgt; \________/_______\ \______/ -- ...

喜歡拼圖夥伴們, 可以進來看看喔

Jacob avatar
By Jacob
at 2011-12-14T15:22
※ [本文轉錄自 Kaohsiung 看板 #1Ew4t8Yu ] 作者: jodoken (kk) 看板: Kaohsiung 標題: [活動] 喜歡拼圖夥伴們, 可以進來看看喔 時間: Wed Dec 14 15:18:30 2011 我們最近新開了一間 拼圖店(凱利‧拼‧世界) 只要五分鐘拼完立 ...