貝茲曲線:修訂版本之間的差異
出自六年制學程
(→一、) |
(→一、) |
||
第 11 行: | 第 11 行: | ||
#[https://www.jianshu.com/p/5198d8aa80c1 用三阶贝塞尔曲线拟合圆] | #[https://www.jianshu.com/p/5198d8aa80c1 用三阶贝塞尔曲线拟合圆] | ||
− | === | + | ===一、圖形最低點與控制點的關係=== |
<table class=nicetable><tr> | <table class=nicetable><tr> | ||
<td>Q or q<br/>(quadratic<br/>Bézier<br/>curve)</td> | <td>Q or q<br/>(quadratic<br/>Bézier<br/>curve)</td> | ||
第 41 行: | 第 41 行: | ||
將 t=0.5 代入 y(t) ,我們得到: | 將 t=0.5 代入 y(t) ,我們得到: | ||
:y(0.5)=100(0.5)(0.5)=25 | :y(0.5)=100(0.5)(0.5)=25 | ||
− | 因此,最低點的 y 值是 25,最高點因為在端點上,所以是 0 | + | 因此,最低點的 y 值是 25,最高點因為在端點上,所以是 0 。且只要起迄點水平排列,'''不論控制點的 x 座標為起迄點的居中或偏左或偏右,都是在 t=0.5 時, y 座標降到控制點垂直距離之半,並且為最低點'''。 |
==參考文章== | ==參考文章== | ||
*[https://zh.wikipedia.org/wiki/貝茲曲線 貝茲曲線] | *[https://zh.wikipedia.org/wiki/貝茲曲線 貝茲曲線] | ||
*[http://blog.iderzheng.com/continuous-and-smooth-bezier-curve/ 連續平滑的貝塞爾曲線] | *[http://blog.iderzheng.com/continuous-and-smooth-bezier-curve/ 連續平滑的貝塞爾曲線] |
2023年8月27日 (日) 14:35的修訂版本
二次貝茲曲線
- 二次貝茲曲線畫出的是拋物線,無法畫出橢圓和雙曲線。故無法畫出正圓。
- 所有拋物線都「相似」(不是相等),所有曲率的微線段都有。
- 兩端點外只有一個控制點。
- 拋物線方程式 ax2+bxy+cy2+dx+ey+f=0 則 b2 - 4ac=0 ,即前三項為完全平方式。
參考
- 二元二次方程式圖形判別的例題
---------- 擬合圓 ---------- - How to create circle with Bézier curves?
- 如何使用Bézier曲線創建圓?
- 用三阶贝塞尔曲线拟合圆
一、圖形最低點與控制點的關係
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
其中:
- t 是一個介於 0 到 1 之間的參數
- P0 是起點
- P1 是控制點
- P2 是終點
為了找到最大和最小的 y 值,我們可以對 y 的方程進行微分,並將其設為 0 以找到可能的極值。
給定的點是:
- P0=(0,0)
- P1=(50,50)
- P2=(100,0)
它們代入 y 的方程,我們得到:
- y(t)=(1−t)2×0+2(1−t)t×50+t2×0=100t(1−t)
對其進行微分:
- y′(t)=100−200t
將斜率設為 0 以解 t:
- 100−200t=0
- t=0.5
將 t=0.5 代入 y(t) ,我們得到:
- y(0.5)=100(0.5)(0.5)=25
因此,最低點的 y 值是 25,最高點因為在端點上,所以是 0 。且只要起迄點水平排列,不論控制點的 x 座標為起迄點的居中或偏左或偏右,都是在 t=0.5 時, y 座標降到控制點垂直距離之半,並且為最低點。