Udostępnij za pośrednictwem


Porady: rysowanie krzywych kardynalnych

Krzywa kardynaalna to krzywa, która przechodzi płynnie przez dany zestaw punktów. Aby narysować krzywą kardynaną, utwórz Graphics obiekt i przekaż adres tablicy punktów do DrawCurve metody .

Rysowanie krzywej kardynanej w kształcie dzwonu

  • Poniższy przykład rysuje krzywą kardynaną w kształcie dzwonu, która przechodzi przez pięć wyznaczonych punktów. Na poniższej ilustracji przedstawiono krzywą i pięć punktów.

    Diagram przedstawiający krzywą kardynaną w kształcie dzwonu.

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)

Rysowanie zamkniętej linii kardynanej

  • DrawClosedCurve Użyj metody Graphics klasy, aby narysować zamkniętą krzywą kardynaną. W zamkniętej linii kardynanej krzywa przechodzi przez ostatni punkt w tablicy i łączy się z pierwszym punktem w tablicy. W poniższym przykładzie rysuje zamkniętą krzywą kardynaną, która przechodzi przez sześć wyznaczonych punktów. Na poniższej ilustracji przedstawiono zamkniętą linię spline wraz z sześcioma punktami:

Diagram przedstawiający zamkniętą krzywą kardynaną.

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)

Zmiana zginania linii kardynanej

  • Zmień sposób, w jaki kardynała krzywa zgina się, przekazując argument napięcia do DrawCurve metody. W poniższym przykładzie rysuje trzy kardynalne linie, które przechodzą przez ten sam zestaw punktów. Na poniższej ilustracji przedstawiono trzy linie szprych wraz z ich wartościami napięcia. Należy pamiętać, że gdy napięcie wynosi 0, punkty są połączone liniami prostymi.

Diagram przedstawiający trzy kardynaalne linie.

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)

Kompilowanie kodu

Powyższe przykłady są przeznaczone do użycia z formularzami systemu Windows i wymagają PaintEventArgseparametru , który jest parametrem Paint programu obsługi zdarzeń.

Zobacz też