draw_nurbs_modT_draw_nurbs_modDrawNurbsModDrawNurbsMod (Operator)

Name

draw_nurbs_modT_draw_nurbs_modDrawNurbsModDrawNurbsMod — Interaktives Modifizieren einer NURBS-Kurve.

Warnung

Dieser Operator kann nicht in HDevelop-Grafikfenstern verwendet werden, die mit dev_open_window geöffnet wurden.

Signatur

draw_nurbs_mod( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Edit, Degree, RowsIn, ColsIn, WeightsIn : Rows, Cols, Weights)

Herror T_draw_nurbs_mod(Hobject* ContOut, const Htuple WindowHandle, const Htuple Rotate, const Htuple Move, const Htuple Scale, const Htuple KeepRatio, const Htuple Edit, const Htuple Degree, const Htuple RowsIn, const Htuple ColsIn, const Htuple WeightsIn, Htuple* Rows, Htuple* Cols, Htuple* Weights)

void DrawNurbsMod(HObject* ContOut, const HTuple& WindowHandle, const HTuple& Rotate, const HTuple& Move, const HTuple& Scale, const HTuple& KeepRatio, const HTuple& Edit, const HTuple& Degree, const HTuple& RowsIn, const HTuple& ColsIn, const HTuple& WeightsIn, HTuple* Rows, HTuple* Cols, HTuple* Weights)

void HXLDCont::DrawNurbsMod(const HWindow& WindowHandle, const HString& Rotate, const HString& Move, const HString& Scale, const HString& KeepRatio, const HString& Edit, Hlong Degree, const HTuple& RowsIn, const HTuple& ColsIn, const HTuple& WeightsIn, HTuple* Rows, HTuple* Cols, HTuple* Weights)

void HXLDCont::DrawNurbsMod(const HWindow& WindowHandle, const char* Rotate, const char* Move, const char* Scale, const char* KeepRatio, const char* Edit, Hlong Degree, const HTuple& RowsIn, const HTuple& ColsIn, const HTuple& WeightsIn, HTuple* Rows, HTuple* Cols, HTuple* Weights)

void HXLDCont::DrawNurbsMod(const HWindow& WindowHandle, const wchar_t* Rotate, const wchar_t* Move, const wchar_t* Scale, const wchar_t* KeepRatio, const wchar_t* Edit, Hlong Degree, const HTuple& RowsIn, const HTuple& ColsIn, const HTuple& WeightsIn, HTuple* Rows, HTuple* Cols, HTuple* Weights)   (Nur Windows)

HXLDCont HWindow::DrawNurbsMod(const HString& Rotate, const HString& Move, const HString& Scale, const HString& KeepRatio, const HString& Edit, Hlong Degree, const HTuple& RowsIn, const HTuple& ColsIn, const HTuple& WeightsIn, HTuple* Rows, HTuple* Cols, HTuple* Weights) const

HXLDCont HWindow::DrawNurbsMod(const char* Rotate, const char* Move, const char* Scale, const char* KeepRatio, const char* Edit, Hlong Degree, const HTuple& RowsIn, const HTuple& ColsIn, const HTuple& WeightsIn, HTuple* Rows, HTuple* Cols, HTuple* Weights) const

HXLDCont HWindow::DrawNurbsMod(const wchar_t* Rotate, const wchar_t* Move, const wchar_t* Scale, const wchar_t* KeepRatio, const wchar_t* Edit, Hlong Degree, const HTuple& RowsIn, const HTuple& ColsIn, const HTuple& WeightsIn, HTuple* Rows, HTuple* Cols, HTuple* Weights) const   (Nur Windows)

static void HOperatorSet.DrawNurbsMod(out HObject contOut, HTuple windowHandle, HTuple rotate, HTuple move, HTuple scale, HTuple keepRatio, HTuple edit, HTuple degree, HTuple rowsIn, HTuple colsIn, HTuple weightsIn, out HTuple rows, out HTuple cols, out HTuple weights)

void HXLDCont.DrawNurbsMod(HWindow windowHandle, string rotate, string move, string scale, string keepRatio, string edit, int degree, HTuple rowsIn, HTuple colsIn, HTuple weightsIn, out HTuple rows, out HTuple cols, out HTuple weights)

HXLDCont HWindow.DrawNurbsMod(string rotate, string move, string scale, string keepRatio, string edit, int degree, HTuple rowsIn, HTuple colsIn, HTuple weightsIn, out HTuple rows, out HTuple cols, out HTuple weights)

Beschreibung

draw_nurbs_moddraw_nurbs_modDrawNurbsModDrawNurbsModDrawNurbsMod liefert die Kontur ContOutContOutContOutContOutcontOut und die Kontrollinformationen (RowsRowsRowsRowsrows, ColsColsColsColscols, and WeightsWeightsWeightsWeightsweights) der NURBS-Kurve mit dem Grad DegreeDegreeDegreeDegreedegree, die interaktiv durch den Benutzer im Fenster WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle modifiziert worden ist. Zusätzliche Informationen über NURBS-Kurven finden sich in der Dokumentation des Operators gen_contour_nurbs_xldgen_contour_nurbs_xldGenContourNurbsXldGenContourNurbsXldGenContourNurbsXld. Um die Kontrollinformationen RowsRowsRowsRowsrows, ColsColsColsColscols und WeightsWeightsWeightsWeightsweights in einem Aufruf des Operators gen_contour_nurbs_xldgen_contour_nurbs_xldGenContourNurbsXldGenContourNurbsXldGenContourNurbsXld zu verwenden, sollte dort der Knotenvektor KnotsKnotsKnotsKnotsknots auf 'auto'"auto""auto""auto""auto" gesetzt werden.

Die Eingabekurve wird durch ihr Kontrollpolygon RowsInRowsInRowsInRowsInrowsIn, ColsInColsInColsInColsIncolsIn, ihren Gewichtsvektor WeightsInWeightsInWeightsInWeightsInweightsIn und ihren Grad DegreeDegreeDegreeDegreedegree beschrieben. Es wird angenommen, dass ihr Knotenvektor uniform ist (das entspricht 'auto'"auto""auto""auto""auto" in gen_contour_nurbs_xldgen_contour_nurbs_xldGenContourNurbsXldGenContourNurbsXldGenContourNurbsXld).

Die Kurve kann auf zwei Arten modifiziert werden: Durch Editieren, zum Beispiel durch Einfügen oder Verschieben von Kontrollpunkten, oder durch das Transformieren der Kurve als Ganzes, zum Beispiel durch Rotieren, Verschieben oder Skalieren. Die Kurve kann jedoch nur editiert werden, wenn der Parameter EditEditEditEditedit auf 'true'"true""true""true""true" gesetzt wurde. Die Parameter RotateRotateRotateRotaterotate, MoveMoveMoveMovemove und ScaleScaleScaleScalescale müssen auf 'true'"true""true""true""true" gesetzt werden, damit die entsprechende Bearbeitung durchgeführt werden kann. draw_nurbs_moddraw_nurbs_modDrawNurbsModDrawNurbsModDrawNurbsMod beginnt im Modus zum Transformieren. Durch Drücken der Umschalttaste kann in den Modus zum Editieren gewechselt werden; durch erneutes Drücken der Taste wechselt man zurück in den Modus zum Transformieren.

Transformieren

In diesem Modus kann die Kurve rotiert, verschoben und skaliert werden, jedoch nur, wenn der entsprechenden Parameter RotateRotateRotateRotaterotate, MoveMoveMoveMovemove und ScaleScaleScaleScalescale auf 'true'"true""true""true""true" gesetzt wurde. Die Kurve wird zusammen mit einem Kreuz in der Mitte, einem Pfeil nach rechts, falls RotateRotateRotateRotaterotate auf 'true'"true""true""true""true" gesetzt wurde, und einem Doppelpfeil, falls ScaleScaleScaleScalescale auf 'true'"true""true""true""true" gesetzt wurde, dargestellt.

Editieren

In diesem Modus wird die Kontur zusammen mit ihrem Kontrollpolygon dargestellt. Start- und Endpunkt sind mit einem zusätzlichen Quadrat markiert. Außerdem ist der Punkt, der als letztes angefasst wurde, von einem Kreis umgeben, der das Gewicht dieses Punktes visualisiert. Folgende Modifikationen können vorgenommen werden:

Ein Klick mit der rechten Maustaste beendet die Prozedur. Unter macOS kann draw_nurbs_moddraw_nurbs_modDrawNurbsModDrawNurbsModDrawNurbsMod auch durch Drücken der Escape-Taste beendet werden.

Das Aussehen der Kurve beim Zeichnen wird durch die Linienbreite, den Linienstil und die Farbe bestimmt, die mit den Operatoren set_colorset_colorSetColorSetColorSetColor, set_coloredset_coloredSetColoredSetColoredSetColored, set_line_widthset_line_widthSetLineWidthSetLineWidthSetLineWidth und set_line_styleset_line_styleSetLineStyleSetLineStyleSetLineStyle gesetzt werden können. Das Kontrollpolygon und alle Anfasser werden in der zweiten Farbe gezeichnet, die via set_colorset_colorSetColorSetColorSetColor oder set_coloredset_coloredSetColoredSetColoredSetColored gesetzt wurde. Ihre Linienbreite ist fest auf 1 gesetzt, außerdem werden ihre Linien durchgezogen gezeichnet.

Ausführungsinformationen

Parameter

ContOutContOutContOutContOutcontOut (output_object)  xld_cont objectHXLDContHXLDContHobject *

Kontur der modifizierten Kurve.

WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle (input_control)  window HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Fenster-Handle.

RotateRotateRotateRotaterotate (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Rotation ermöglichen?

Defaultwert: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

MoveMoveMoveMovemove (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Verschieben ermöglichen?

Defaultwert: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

ScaleScaleScaleScalescale (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Skalieren ermöglichen?

Defaultwert: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

KeepRatioKeepRatioKeepRatioKeepRatiokeepRatio (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Seitenverhältnis beim Skalieren beibehalten?

Defaultwert: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

EditEditEditEditedit (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Editieren ermöglichen?

Defaultwert: 'true' "true" "true" "true" "true"

Werteliste: 'false'"false""false""false""false", 'true'"true""true""true""true"

DegreeDegreeDegreeDegreedegree (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Grad p der Kurve. Vernünftige Werte liegen zwischen 3 und 25.

Defaultwert: 3

Wertevorschläge: 2, 3, 4, 5

Restriktion: Degree >= 2

RowsInRowsInRowsInRowsInrowsIn (input_control)  coordinates.y-array HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinaten des Eingabekontrollpolygons.

ColsInColsInColsInColsIncolsIn (input_control)  coordinates.x-array HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinaten des Eingabekontrollpolygons.

WeightsInWeightsInWeightsInWeightsInweightsIn (input_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Eingabegewichtsvektor.

RowsRowsRowsRowsrows (output_control)  coordinates.y-array HTupleHTupleHtuple (real) (double) (double) (double)

Zeilen Koordinaten des Kontrollpolygons.

ColsColsColsColscols (output_control)  coordinates.x-array HTupleHTupleHtuple (real) (double) (double) (double)

Spalten Koordinaten des Kontrollpolygons.

WeightsWeightsWeightsWeightsweights (output_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Gewichtsvektor.

Ergebnis

draw_nurbs_moddraw_nurbs_modDrawNurbsModDrawNurbsModDrawNurbsMod liefert den Wert 2 (H_MSG_TRUE), falls das Fenster gültig ist. Ansonsten wird eine Fehlerbehandlung durchgeführt.

Vorgänger

open_windowopen_windowOpenWindowOpenWindowOpenWindow

Nachfolger

set_coloredset_coloredSetColoredSetColoredSetColored, set_line_widthset_line_widthSetLineWidthSetLineWidthSetLineWidth, set_drawset_drawSetDrawSetDrawSetDraw, set_insertset_insertSetInsertSetInsertSetInsert

Alternativen

draw_nurbs_interp_moddraw_nurbs_interp_modDrawNurbsInterpModDrawNurbsInterpModDrawNurbsInterpMod, draw_xld_moddraw_xld_modDrawXldModDrawXldModDrawXldMod

Siehe auch

draw_nurbsdraw_nurbsDrawNurbsDrawNurbsDrawNurbs, draw_nurbs_interpdraw_nurbs_interpDrawNurbsInterpDrawNurbsInterpDrawNurbsInterp, gen_contour_nurbs_xldgen_contour_nurbs_xldGenContourNurbsXldGenContourNurbsXldGenContourNurbsXld

Modul

Foundation