Added triangle rotating pivot controls.

This commit is contained in:
utak3r 2005-07-03 21:18:07 +00:00
parent d0d40dc78b
commit 23a8768c97
2 changed files with 53 additions and 17 deletions

View File

@ -158,7 +158,7 @@ object EditForm: TEditForm
Width = 159 Width = 159
Height = 231 Height = 231
HorzScrollBar.Visible = False HorzScrollBar.Visible = False
VertScrollBar.Position = 121 VertScrollBar.Position = 127
VertScrollBar.Smooth = True VertScrollBar.Smooth = True
VertScrollBar.Style = ssFlat VertScrollBar.Style = ssFlat
VertScrollBar.Tracking = True VertScrollBar.Tracking = True
@ -169,9 +169,9 @@ object EditForm: TEditForm
TabOrder = 0 TabOrder = 0
object TrianglePanel: TPanel object TrianglePanel: TPanel
Left = 0 Left = 0
Top = -121 Top = -127
Width = 155 Width = 155
Height = 352 Height = 400
BevelOuter = bvNone BevelOuter = bvNone
TabOrder = 0 TabOrder = 0
object Label9: TLabel object Label9: TLabel
@ -218,7 +218,7 @@ object EditForm: TEditForm
end end
object btTrgRotateRight: TSpeedButton object btTrgRotateRight: TSpeedButton
Left = 90 Left = 90
Top = 184 Top = 240
Width = 33 Width = 33
Height = 24 Height = 24
Hint = 'Rotate triangle clockwise around its center' Hint = 'Rotate triangle clockwise around its center'
@ -238,7 +238,7 @@ object EditForm: TEditForm
end end
object btTrgRotateLeft: TSpeedButton object btTrgRotateLeft: TSpeedButton
Left = 22 Left = 22
Top = 184 Top = 240
Width = 33 Width = 33
Height = 24 Height = 24
Hint = 'Rotate triangle counter clockwise around its center' Hint = 'Rotate triangle counter clockwise around its center'
@ -276,7 +276,7 @@ object EditForm: TEditForm
end end
object btTrgMoveUp: TSpeedButton object btTrgMoveUp: TSpeedButton
Left = 56 Left = 56
Top = 226 Top = 282
Width = 33 Width = 33
Height = 24 Height = 24
Hint = 'Move triangle up' Hint = 'Move triangle up'
@ -314,7 +314,7 @@ object EditForm: TEditForm
end end
object btTrgMoveRight: TSpeedButton object btTrgMoveRight: TSpeedButton
Left = 90 Left = 90
Top = 250 Top = 306
Width = 33 Width = 33
Height = 24 Height = 24
Hint = 'Move triangle right' Hint = 'Move triangle right'
@ -352,7 +352,7 @@ object EditForm: TEditForm
end end
object btTrgMoveLeft: TSpeedButton object btTrgMoveLeft: TSpeedButton
Left = 22 Left = 22
Top = 250 Top = 306
Width = 33 Width = 33
Height = 24 Height = 24
Hint = 'Move triangle left' Hint = 'Move triangle left'
@ -390,7 +390,7 @@ object EditForm: TEditForm
end end
object btTrgMoveDown: TSpeedButton object btTrgMoveDown: TSpeedButton
Left = 56 Left = 56
Top = 274 Top = 330
Width = 33 Width = 33
Height = 24 Height = 24
Hint = 'Move triangle down' Hint = 'Move triangle down'
@ -428,7 +428,7 @@ object EditForm: TEditForm
end end
object btTrgScaleUp: TSpeedButton object btTrgScaleUp: TSpeedButton
Left = 90 Left = 90
Top = 318 Top = 374
Width = 33 Width = 33
Height = 24 Height = 24
Hint = 'Scale triangle up' Hint = 'Scale triangle up'
@ -448,7 +448,7 @@ object EditForm: TEditForm
end end
object btTrgScaleDown: TSpeedButton object btTrgScaleDown: TSpeedButton
Left = 22 Left = 22
Top = 318 Top = 374
Width = 33 Width = 33
Height = 24 Height = 24
Hint = 'Scale triangle down' Hint = 'Scale triangle down'
@ -468,7 +468,7 @@ object EditForm: TEditForm
end end
object txtTrgRotateValue: TEdit object txtTrgRotateValue: TEdit
Left = 56 Left = 56
Top = 184 Top = 240
Width = 33 Width = 33
Height = 21 Height = 21
TabOrder = 7 TabOrder = 7
@ -476,7 +476,7 @@ object EditForm: TEditForm
end end
object txtTrgMoveValue: TEdit object txtTrgMoveValue: TEdit
Left = 56 Left = 56
Top = 250 Top = 306
Width = 33 Width = 33
Height = 21 Height = 21
TabOrder = 8 TabOrder = 8
@ -549,7 +549,7 @@ object EditForm: TEditForm
OnKeyPress = CornerEditKeyPress OnKeyPress = CornerEditKeyPress
end end
object chkPreserve: TCheckBox object chkPreserve: TCheckBox
Left = 28 Left = 8
Top = 152 Top = 152
Width = 105 Width = 105
Height = 17 Height = 17
@ -560,12 +560,29 @@ object EditForm: TEditForm
end end
object txtTrgScaleValue: TEdit object txtTrgScaleValue: TEdit
Left = 56 Left = 56
Top = 320 Top = 376
Width = 33 Width = 33
Height = 21 Height = 21
TabOrder = 9 TabOrder = 9
Text = '0.1' Text = '0.1'
end end
object rgPivot: TRadioGroup
Left = 8
Top = 176
Width = 129
Height = 49
Caption = ' Rotating pivot : '
Columns = 2
Ctl3D = True
ItemIndex = 3
Items.Strings = (
'A'
'B'
'C'
'Center')
ParentCtl3D = False
TabOrder = 10
end
end end
end end
end end

View File

@ -127,6 +127,7 @@ type
txtTrgScaleValue: TEdit; txtTrgScaleValue: TEdit;
btTrgScaleUp: TSpeedButton; btTrgScaleUp: TSpeedButton;
btTrgScaleDown: TSpeedButton; btTrgScaleDown: TSpeedButton;
rgPivot: TRadioGroup;
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure GraphImageMouseMove(Sender: TObject; Shift: TShiftState; X, procedure GraphImageMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: integer); Y: integer);
@ -2045,7 +2046,16 @@ begin
end; end;
if offset <> 0 then if offset <> 0 then
begin begin
MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], (PI/180) * offset); case (rgPivot.ItemIndex) of
0: MainTriangles[SelectedTriangle] :=
RotateTrianglePoint(MainTriangles[SelectedTriangle], MainTriangles[SelectedTriangle].x[0], MainTriangles[SelectedTriangle].y[0], (PI/180) * offset);
1: MainTriangles[SelectedTriangle] :=
RotateTrianglePoint(MainTriangles[SelectedTriangle], MainTriangles[SelectedTriangle].x[1], MainTriangles[SelectedTriangle].y[1], (PI/180) * offset);
2: MainTriangles[SelectedTriangle] :=
RotateTrianglePoint(MainTriangles[SelectedTriangle], MainTriangles[SelectedTriangle].x[2], MainTriangles[SelectedTriangle].y[2], (PI/180) * offset);
3: MainTriangles[SelectedTriangle] :=
RotateTriangleCenter(MainTriangles[SelectedTriangle], (PI/180) * offset);
end;
HasChanged := True; HasChanged := True;
UpdateFlame(true); UpdateFlame(true);
end; end;
@ -2063,7 +2073,16 @@ begin
end; end;
if offset <> 0 then if offset <> 0 then
begin begin
MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], -((PI/180) * offset)); case (rgPivot.ItemIndex) of
0: MainTriangles[SelectedTriangle] :=
RotateTrianglePoint(MainTriangles[SelectedTriangle], MainTriangles[SelectedTriangle].x[0], MainTriangles[SelectedTriangle].y[0], -((PI/180) * offset));
1: MainTriangles[SelectedTriangle] :=
RotateTrianglePoint(MainTriangles[SelectedTriangle], MainTriangles[SelectedTriangle].x[1], MainTriangles[SelectedTriangle].y[1], -((PI/180) * offset));
2: MainTriangles[SelectedTriangle] :=
RotateTrianglePoint(MainTriangles[SelectedTriangle], MainTriangles[SelectedTriangle].x[2], MainTriangles[SelectedTriangle].y[2], -((PI/180) * offset));
3: MainTriangles[SelectedTriangle] :=
RotateTriangleCenter(MainTriangles[SelectedTriangle], -((PI/180) * offset));
end;
HasChanged := True; HasChanged := True;
UpdateFlame(true); UpdateFlame(true);
end; end;