update_window_poseT_update_window_poseUpdateWindowPoseUpdateWindowPoseupdate_window_pose (Operator)

Name

update_window_poseT_update_window_poseUpdateWindowPoseUpdateWindowPoseupdate_window_pose — Verändern der Pose eines 3D-Plots.

Signatur

update_window_pose( : : WindowHandle, LastRow, LastCol, CurrentRow, CurrentCol, Mode : )

Herror T_update_window_pose(const Htuple WindowHandle, const Htuple LastRow, const Htuple LastCol, const Htuple CurrentRow, const Htuple CurrentCol, const Htuple Mode)

void UpdateWindowPose(const HTuple& WindowHandle, const HTuple& LastRow, const HTuple& LastCol, const HTuple& CurrentRow, const HTuple& CurrentCol, const HTuple& Mode)

void HWindow::UpdateWindowPose(const HTuple& LastRow, const HTuple& LastCol, const HTuple& CurrentRow, const HTuple& CurrentCol, const HString& Mode) const

void HWindow::UpdateWindowPose(double LastRow, double LastCol, double CurrentRow, double CurrentCol, const HString& Mode) const

void HWindow::UpdateWindowPose(double LastRow, double LastCol, double CurrentRow, double CurrentCol, const char* Mode) const

void HWindow::UpdateWindowPose(double LastRow, double LastCol, double CurrentRow, double CurrentCol, const wchar_t* Mode) const   (Nur Windows)

static void HOperatorSet.UpdateWindowPose(HTuple windowHandle, HTuple lastRow, HTuple lastCol, HTuple currentRow, HTuple currentCol, HTuple mode)

void HWindow.UpdateWindowPose(HTuple lastRow, HTuple lastCol, HTuple currentRow, HTuple currentCol, string mode)

void HWindow.UpdateWindowPose(double lastRow, double lastCol, double currentRow, double currentCol, string mode)

def update_window_pose(window_handle: HHandle, last_row: Union[float, int], last_col: Union[float, int], current_row: Union[float, int], current_col: Union[float, int], mode: str) -> None

Beschreibung

Der Operator update_window_poseupdate_window_poseUpdateWindowPoseUpdateWindowPoseUpdateWindowPoseupdate_window_pose vereinfacht das Setzen der Orientierung und der Lage des Höhenmodells, das vom Operator disp_objdisp_objDispObjDispObjDispObjdisp_obj angezeigt wird, sofern der Darstellungsmodus mittels set_paintset_paintSetPaintSetPaintSetPaintset_paint auf '3d_plot'"3d_plot""3d_plot""3d_plot""3d_plot""3d_plot" gesetzt wurde.

Zwei Fensterposition (LastRowLastRowLastRowLastRowlastRowlast_row,LastColLastColLastColLastCollastCollast_col) und (CurrentRowCurrentRowCurrentRowCurrentRowcurrentRowcurrent_row, CurrentColCurrentColCurrentColCurrentColcurrentColcurrent_col) werden in Rotation, Skalierung oder Bewegung umgewandelt, abhängig von ModeModeModeModemodemode. Diese Fensterkoordinaten müssen so angegeben werden, dass sie dem gesetzten Bildausschnitt entsprechen und damit auch subpixelgenau sind. Ist der Bildausschnitt durch (Zeile1,Spalte1,Zeile2,Spalte2) gegeben, entspricht die linke obere Ecke der Koordinate (Zeile1 - 0.5, Spalte1 - 0.5), die rechte untere Ecke der Koordinate (Zeile2 - 0.5, Spalte2 - 0.5). Die Operatoren get_mposition_sub_pixget_mposition_sub_pixGetMpositionSubPixGetMpositionSubPixGetMpositionSubPixget_mposition_sub_pix oder get_mbutton_sub_pixget_mbutton_sub_pixGetMbuttonSubPixGetMbuttonSubPixGetMbuttonSubPixget_mbutton_sub_pix können verwendet werden, um diese Koordinaten direkt zu erhalten.

Wird 'rotate'"rotate""rotate""rotate""rotate""rotate" als ModeModeModeModemodemode gewählt, wird das Höhenmodell rotiert. Dabei werden beide Punkte auf eine virtuelle Kugel, die im Zentrum des Fensters ihren Mittelpunkt hat, projiziert. Der Bogen zwischen beiden Projektionen entspricht der Rotation, die auf das Höhenmodell angewandt wird.

Wird 'scale'"scale""scale""scale""scale""scale" als ModeModeModeModemodemode gewählt, wird die Distanz zwischen dem Betrachter und dem Höhenmodell verringert, wenn CurrentRowCurrentRowCurrentRowCurrentRowcurrentRowcurrent_row größer ist als LastRowLastRowLastRowLastRowlastRowlast_row. Falls CurrentRowCurrentRowCurrentRowCurrentRowcurrentRowcurrent_row kleiner ist als LastRowLastRowLastRowLastRowlastRowlast_row, wird die Distanz vergrößert.

Wird 'move'"move""move""move""move""move" als ModeModeModeModemodemode gewählt, werden die Eingabepunkte auf eine Ebene, die parallel zur Betrachterebene durch die Mitte des Höhenmodells geht, projiziert. Das Zentrum des Höhenmodells wird um die Distanz zwischen beiden Projektionen bewegt.

Wird 'move_plane'"move_plane""move_plane""move_plane""move_plane""move_plane" als ModeModeModeModemodemode gewählt, werden die Eingabepunkte auf die Ebene projiziert, die der Höhe Null entspricht. Das Höhenmodell wird um die Distanz zwischen beiden Projektionen bewegt.

Ausführungsinformationen

Parameter

WindowHandleWindowHandleWindowHandleWindowHandlewindowHandlewindow_handle (input_control)  window HWindow, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Fenster-Handle.

LastRowLastRowLastRowLastRowlastRowlast_row (input_control)  point.y HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des ersten Punktes

LastColLastColLastColLastCollastCollast_col (input_control)  point.x HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate des ersten Punktes.

CurrentRowCurrentRowCurrentRowCurrentRowcurrentRowcurrent_row (input_control)  point.y HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des zweiten Punktes.

CurrentColCurrentColCurrentColCurrentColcurrentColcurrent_col (input_control)  point.x HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate des zweiten Punktes.

ModeModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Navigationsmodus.

Defaultwert: 'rotate' "rotate" "rotate" "rotate" "rotate" "rotate"

Werteliste: 'move'"move""move""move""move""move", 'move_plane'"move_plane""move_plane""move_plane""move_plane""move_plane", 'rotate'"rotate""rotate""rotate""rotate""rotate", 'scale'"scale""scale""scale""scale""scale"

Beispiel (HDevelop)

* Interactive display of a height field
dev_set_paint ('3d_plot')
while (1)
  dev_set_check ('~give_error')
  get_mposition_sub_pix (WindowHandle, Row, Column, Button)
  dev_set_check ('give_error')
  if (ButtonDown and (Button == 0))
    ButtonDown := false
  endif
  if (not(Button == 0))
    if (ButtonDown)
      if (Button == 1)
        mode := 'rotate'
      endif
      if (Button == 4)
        mode := 'scale'
      endif
      if (Button == 5)
        mode := 'move'
      endif
      update_window_pose (WindowHandle, lastRow, lastCol, Row, Column, mode)
    else
      if (Button == 2)
        break
      endif
      ButtonDown := true
    endif
    lastCol := Column
    lastRow := Row
  endif
  dev_display (Image)
endwhile

Vorgänger

set_paintset_paintSetPaintSetPaintSetPaintset_paint, open_windowopen_windowOpenWindowOpenWindowOpenWindowopen_window, get_mposition_sub_pixget_mposition_sub_pixGetMpositionSubPixGetMpositionSubPixGetMpositionSubPixget_mposition_sub_pix, get_mbutton_sub_pixget_mbutton_sub_pixGetMbuttonSubPixGetMbuttonSubPixGetMbuttonSubPixget_mbutton_sub_pix

Nachfolger

disp_imagedisp_imageDispImageDispImageDispImagedisp_image

Siehe auch

unproject_coordinatesunproject_coordinatesUnprojectCoordinatesUnprojectCoordinatesUnprojectCoordinatesunproject_coordinates

Modul

Foundation