在delphi中,如何将基本的鼠标控件添加到球体中



在delphi中,我试图放大和缩小并单击旋转但我不确定该怎么办

begin
end;
procedure TForm1.GlobeMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; var Handled: Boolean);
begin
end;
procedure TForm1.GlobeClick(Sender: TObject);
begin
end;

另一种方法可能是添加自己的相机,而不是默认设计的相机。

在表单上放置一个TDummy组件,然后将相机添加到该TDummy中。然后使用Viewport3D的MouseMove和MouseWheel事件分别旋转TDummy和调整相机的Z位置。

// ----------------------------------------------------------------------------
procedure TfrmMain.Viewport3D1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
begin
FMouseDown := PointF(X, Y);
end;
// ----------------------------------------------------------------------------
procedure TfrmMain.Viewport3D1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Single);
begin
if ssLeft in Shift then
begin
Dummy1.RotationAngle.X := Dummy1.RotationAngle.X -
((Y - FMouseDown.Y) * 0.3);
Dummy1.RotationAngle.Y := Dummy1.RotationAngle.Y +
((X - FMouseDown.X) * 0.3);
FMouseDown := PointF(X, Y);
end;
end;
// ----------------------------------------------------------------------------
procedure TfrmMain.Viewport3D1MouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; var Handled: Boolean);
begin
Camera1.Position.Z := Camera1.Position.Z + WheelDelta / 40;
end;

在这篇简单的FireMonkey 3D博客文章中有一个更完整的例子。参见标题为";操纵场景";。

最新更新