貝茲曲線:修訂版本之間的差異

出自六年制學程
跳轉到: 導覽搜尋
一、圖形最低點與控制點的關係
一、圖形最低點與控制點的關係
第 17 行: 第 17 行:
 
<td>從目前點的座標畫條<br/>二次貝茲曲線到指定<br/>點的 x,y 座標:其中<br/> x1,y1 為控制點</td>
 
<td>從目前點的座標畫條<br/>二次貝茲曲線到指定<br/>點的 x,y 座標:其中<br/> x1,y1 為控制點</td>
 
</tr></table>
 
</tr></table>
 +
 
二次貝茲曲線的參數方程為:
 
二次貝茲曲線的參數方程為:
  
 
B(t)=(1−t)<sup>2</sup>×P<sub>0</sub>+2(1−t)t×P<sub>1</sub>+t<sup>2</sup>×P<sub>2</sub>
 
B(t)=(1−t)<sup>2</sup>×P<sub>0</sub>+2(1−t)t×P<sub>1</sub>+t<sup>2</sup>×P<sub>2</sub>
  
 +
圖形為:
 
<img src='https://upload.wikimedia.org/wikipedia/commons/d/da/ControlPointsAndGraphicsOfQuadraticB%C3%A9zierCurve.svg' width='95%' height=* />
 
<img src='https://upload.wikimedia.org/wikipedia/commons/d/da/ControlPointsAndGraphicsOfQuadraticB%C3%A9zierCurve.svg' width='95%' height=* />
  
第 26 行: 第 28 行:
 
其中:
 
其中:
 
#t 是一個介於 0 到 1 之間的參數
 
#t 是一個介於 0 到 1 之間的參數
#P<sub>0</sub> 是起點
+
#P<sub>0</sub> 是起點,座標設為 (0,0)
#P<sub>1</sub> 是控制點
+
#P<sub>1</sub> 是控制點,座標設為 (α,β)
#P<sub>2</sub> 是終點
+
#P<sub>2</sub> 是終點,座標設為 (ɭ,0)
 +
 
 
為了找到最大和最小的 y 值,我們可以對 y 的方程進行微分,並將其設為 0 以找到可能的極值。
 
為了找到最大和最小的 y 值,我們可以對 y 的方程進行微分,並將其設為 0 以找到可能的極值。
  
給定的點是:
 
:P<sub>0</sub>=(0,0)
 
:P<sub>1</sub>=(α,β)
 
:P<sub>2</sub>=(ɭ,0)
 
 
它們代入 y 的方程,我們得到:
 
它們代入 y 的方程,我們得到:
:y(t)=(1−t)<sup>2</sup>×0+2(1−t)t×β+t<sup>2</sup>×0=2β×t(1−t)=2β×(t−t<sup>2</sup>)
+
:B<sub>y</sub>(t)=(1−t)<sup>2</sup>×0+2(1−t)t×β+t<sup>2</sup>×0=2β×t(1−t)=2β×(t−t<sup>2</sup>)
 
對其進行微分:
 
對其進行微分:
:y′(t)=2β(1-2t)
+
:B<sub>y</sub>′(t)=2β(1-2t)
 
將斜率設為 0 以解 t:
 
將斜率設為 0 以解 t:
 
:1−2t=0
 
:1−2t=0
 
:t=0.5
 
:t=0.5
將 t=0.5 代入 y(t) ,我們得到:
+
將 t=0.5 代入 B<sub>y</sub>(t) ,我們得到:
:y(0.5)=2β(0.5)(0.5)=0.5β
+
:B<sub>y</sub>(0.5)=2β(0.5)(0.5)=0.5β
 
因此,最低點的 y 值是 0.5β,最高點因為在端點上,所以是 0 。
 
因此,最低點的 y 值是 0.5β,最高點因為在端點上,所以是 0 。
  

2023年9月16日 (六) 15:22的修訂版本

二次貝茲曲線

  1. 二次貝茲曲線畫出的是拋物線,無法畫出橢圓和雙曲線。故無法畫出正圓。
  2. 所有拋物線都「相似」(不是相等),且所有曲率(0~∞)的微線段都有。
  3. 兩端點外只有一個控制點。
  4. 拋物線方程式 ax2+bxy+cy2+dx+ey+f=0 則 b2 - 4ac=0 ,即前三項為完全平方式。

參考

  1. 二元二次方程式圖形判別的例題
    ---------- 擬合圓 ----------
  2. How to create circle with Bézier curves?
  3. 如何使用Bézier曲線創建圓?
  4. 用三阶贝塞尔曲线拟合圆

一、圖形最低點與控制點的關係

Q or q
(quadratic
Bézier
curve)
x1 y1 x y

<path d='M0,0 Q50,50 100,0' style='stroke:black'/>
<path d='m0,0 q50,50 100,0' style='stroke:black'/>
從目前點的座標畫條
二次貝茲曲線到指定
點的 x,y 座標:其中
x1,y1 為控制點

二次貝茲曲線的參數方程為:

B(t)=(1−t)2×P0+2(1−t)t×P1+t2×P2

圖形為:


其中:

  1. t 是一個介於 0 到 1 之間的參數
  2. P0 是起點,座標設為 (0,0)
  3. P1 是控制點,座標設為 (α,β)
  4. P2 是終點,座標設為 (ɭ,0)

為了找到最大和最小的 y 值,我們可以對 y 的方程進行微分,並將其設為 0 以找到可能的極值。

它們代入 y 的方程,我們得到:

By(t)=(1−t)2×0+2(1−t)t×β+t2×0=2β×t(1−t)=2β×(t−t2)

對其進行微分:

By′(t)=2β(1-2t)

將斜率設為 0 以解 t:

1−2t=0
t=0.5

將 t=0.5 代入 By(t) ,我們得到:

By(0.5)=2β(0.5)(0.5)=0.5β

因此,最低點的 y 值是 0.5β,最高點因為在端點上,所以是 0 。

一般化:

由於起迄點水平排列, y 的極值均在 t=0.5 處

起迄點水平排列,由控制點座標(α,β)求最低點座標(a,b):

由上一段推理得到 b=½ β,此時 t=0.5 。

B(t)=(1−t)2×P0+2(1−t)t×P1+t2×P2

Bx(0.5)=2(0.5)(0.5)α+0.25ɭ=½ α+¼ ɭ=a


所以有:

  1. Q=½ (P+P1) ,P,Q,P1,三點共線,且 Q 為 PP1 的中點。
  2. P1P0, P1P2 分別切二次貝茲曲線 P0QP2 於 P0, P2

參考文章