「貝茲曲線」修訂間的差異

出自六年制學程
跳至導覽 跳至搜尋
第17行: 第17行:
 
<td>從目前點的座標畫條二次貝茲曲線到指定點的 x,y 座標:其中 x1,y1 為控制點</td>
 
<td>從目前點的座標畫條二次貝茲曲線到指定點的 x,y 座標:其中 x1,y1 為控制點</td>
 
</tr></table>
 
</tr></table>
 +
二次貝茲曲線的參數方程為:
 +
<span class="math math-inline"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>B</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mo stretchy="false">(</mo><mn>1</mn><mo>−</mo><mi>t</mi><msup><mo stretchy="false">)</mo><mn>2</mn></msup><mo>×</mo><mi>P</mi><mn>0</mn><mo>+</mo><mn>2</mn><mo stretchy="false">(</mo><mn>1</mn><mo>−</mo><mi>t</mi><mo stretchy="false">)</mo><mi>t</mi><mo>×</mo><mi>P</mi><mn>1</mn><mo>+</mo><msup><mi>t</mi><mn>2</mn></msup><mo>×</mo><mi>P</mi><mn>2</mn></mrow><annotation encoding="application/x-tex">B(t) = (1-t)^2 \times P0 + 2(1-t)t \times P1 + t^2 \times P2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathnormal" style="margin-right: 0.05017em;">B</span><span class="mopen">(</span><span class="mord mathnormal">t</span><span class="mclose">)</span><span class="mspace" style="margin-right: 0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right: 0.2778em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mopen">(</span><span class="mord">1</span><span class="mspace" style="margin-right: 0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right: 0.2222em;"></span></span><span class="base"><span class="strut" style="height: 1.0641em; vertical-align: -0.25em;"></span><span class="mord mathnormal">t</span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height: 0.8141em;"><span style="top: -3.063em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right: 0.2222em;"></span></span><span class="base"><span class="strut" style="height: 0.7667em; vertical-align: -0.0833em;"></span><span class="mord mathnormal" style="margin-right: 0.13889em;">P</span><span class="mord">0</span><span class="mspace" style="margin-right: 0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.2222em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord">2</span><span class="mopen">(</span><span class="mord">1</span><span class="mspace" style="margin-right: 0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right: 0.2222em;"></span></span><span class="base"><span class="strut" style="height: 1em; vertical-align: -0.25em;"></span><span class="mord mathnormal">t</span><span class="mclose">)</span><span class="mord mathnormal">t</span><span class="mspace" style="margin-right: 0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right: 0.2222em;"></span></span><span class="base"><span class="strut" style="height: 0.7667em; vertical-align: -0.0833em;"></span><span class="mord mathnormal" style="margin-right: 0.13889em;">P</span><span class="mord">1</span><span class="mspace" style="margin-right: 0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right: 0.2222em;"></span></span><span class="base"><span class="strut" style="height: 0.8974em; vertical-align: -0.0833em;"></span><span class="mord"><span class="mord mathnormal">t</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height: 0.8141em;"><span style="top: -3.063em; margin-right: 0.05em;"><span class="pstrut" style="height: 2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right: 0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right: 0.2222em;"></span></span><span class="base"><span class="strut" style="height: 0.6833em;"></span><span class="mord mathnormal" style="margin-right: 0.13889em;">P</span><span class="mord">2</span></span></span></span></span>
  
 
==參考文章==
 
==參考文章==
 
*[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日 (日) 13:49 的修訂

二次貝茲曲線

  1. 二次貝茲曲線畫出的是拋物線,無法畫出橢圓和雙曲線。故無法畫出正圓。
  2. 所有拋物線都「相似」(不是相等),所有曲率的微線段都有。
  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 為控制點

二次貝茲曲線的參數方程為: [math]\lt semantics\gt \lt mrow\gt \lt mi\gt B\lt /mi\gt \lt mo stretchy="false"\gt (\lt /mo\gt \lt mi\gt t\lt /mi\gt \lt mo stretchy="false"\gt )\lt /mo\gt \lt mo\gt =\lt /mo\gt \lt mo stretchy="false"\gt (\lt /mo\gt \lt mn\gt 1\lt /mn\gt \lt mo\gt −\lt /mo\gt \lt mi\gt t\lt /mi\gt \lt msup\gt \lt mo stretchy="false"\gt )\lt /mo\gt \lt mn\gt 2\lt /mn\gt \lt /msup\gt \lt mo\gt ×\lt /mo\gt \lt mi\gt P\lt /mi\gt \lt mn\gt 0\lt /mn\gt \lt mo\gt +\lt /mo\gt \lt mn\gt 2\lt /mn\gt \lt mo stretchy="false"\gt (\lt /mo\gt \lt mn\gt 1\lt /mn\gt \lt mo\gt −\lt /mo\gt \lt mi\gt t\lt /mi\gt \lt mo stretchy="false"\gt )\lt /mo\gt \lt mi\gt t\lt /mi\gt \lt mo\gt ×\lt /mo\gt \lt mi\gt P\lt /mi\gt \lt mn\gt 1\lt /mn\gt \lt mo\gt +\lt /mo\gt \lt msup\gt \lt mi\gt t\lt /mi\gt \lt mn\gt 2\lt /mn\gt \lt /msup\gt \lt mo\gt ×\lt /mo\gt \lt mi\gt P\lt /mi\gt \lt mn\gt 2\lt /mn\gt \lt /mrow\gt \lt annotation encoding="application/x-tex"\gt B(t) = (1-t)^2 \times P0 + 2(1-t)t \times P1 + t^2 \times P2\lt /annotation\gt \lt /semantics\gt [/math]

參考文章