共用方式為


如何:繪製基本曲線

基數曲線是一條曲線,可以平滑地通過一組指定的點。 若要繪製基數曲線,請建立 Graphics 物件,並將點陣列的位址傳遞至 DrawCurve 方法。

繪製鐘形基數曲線

  • 下列範例會繪製通過五個指定點的鐘形基數曲線。 下圖顯示曲線和五個點。

    顯示鐘形基數曲線的圖表。

Point[] points = {
   new Point(0, 100),
   new Point(50, 80),
   new Point(100, 20),
   new Point(150, 80),
   new Point(200, 100)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points);
Dim points As Point() = { _
   New Point(0, 100), _
   New Point(50, 80), _
   New Point(100, 20), _
   New Point(150, 80), _
   New Point(200, 100)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points)

繪製封閉基數曲線

  • 使用 Graphics 類別的 DrawClosedCurve 方法來繪製封閉基數曲線。 在封閉的基數曲線中,曲線會從陣列的最後一個點繼續延伸,並與陣列中的第一個點連接。 下列範例會繪製通過六個指定點的封閉基數曲線。 下圖顯示封閉曲線以及六個點:

顯示封閉基數曲線的圖表。

Point[] points = {
   new Point(60, 60),
   new Point(150, 80),
   new Point(200, 40),
   new Point(180, 120),
   new Point(120, 100),
   new Point(80, 160)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawClosedCurve(pen, points);
Dim points As Point() = { _
   New Point(60, 60), _
   New Point(150, 80), _
   New Point(200, 40), _
   New Point(180, 120), _
   New Point(120, 100), _
   New Point(80, 160)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawClosedCurve(pen, points)

變更基數曲線的彎曲

  • 將張力引數傳遞至 DrawCurve 方法,以變更基數曲線彎曲的方式。 下列範例會繪製三個通過相同點集的基數曲線。 下圖顯示三條曲線及其張力的值。 請注意,當張力為 0 時,點會以直線連接。

顯示三個基數曲線的圖表。

Point[] points = {
   new Point(20, 50),
   new Point(100, 10),
   new Point(200, 100),
   new Point(300, 50),
   new Point(400, 80)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points, 0.0f);
e.Graphics.DrawCurve(pen, points, 0.6f);
e.Graphics.DrawCurve(pen, points, 1.0f);
Dim points As Point() = { _
   New Point(20, 50), _
   New Point(100, 10), _
   New Point(200, 100), _
   New Point(300, 50), _
   New Point(400, 80)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points, 0.0F)
e.Graphics.DrawCurve(pen, points, 0.6F)
e.Graphics.DrawCurve(pen, points, 1.0F)

編譯程式碼

上述範例是專為搭配 Windows Forms 使用而設計,而且需要 PaintEventArgse,這是 Paint 事件處理常式的參數。

另請參閱