[右手座標系 サンプルソースコード]
http://ht-deko.minim.ne.jp/software/righthandrule.zip
を勉強しています。
Dial を回して軸を回転させるのではなく、Dial を Button に変更して軸を
回転させたいと思い X軸の回転を Dial ではなく X軸回転用の Button を配置して、
Button を Click するごとに +方向に90度ずつ回転させるようにしてみました。
しかし、 何回 Click しても90度しか回転しません。
Deafault Button を押すと、X軸回転用の Button が左方向に移動してしまいます。
それが以下のコードです。
procedure TForm1.Button1Click(Sender: TObject); //<-- Deafault Button
begin
FloatAnimation1.Start;
end;
procedure TForm1.Button2Click(Sender: TObject); //<-- X軸回転用 Button
begin
Dummy1.RotationAngle.X := Button2.Position.X;
end;
FloatAnimation1 のオブジェクトインスペクタのプロパティの PropertyName は
Position.X にしています。
X軸回転用の Button を配置して、X軸回転用の Button を Click するごとに
+方向に90度ずつ回転させるようにし、Deafault Button を押すと、
軸が元の位置に戻るようにするには、どのようなコードを書けばいいのでしょうか。
詳しい方がいらっしゃいましたらご指導の程よろしくお願い致します。
使用環境
WIN7 Pro 64bit SP1
Delphi XE3
こんにちは。
> Deafault Button を押すと、X軸回転用の Button が左方向に移動してしまいます。
FloatAnimation1 は "何の子コントロール" になっていますか?
[構造] ペインは確かめましたか?[オブジェクトインスペクタ] は確認しましたか?
同じ間違いを繰り返しておられるようですが?
> X軸回転用の Button を配置して、X軸回転用の Button を Click するごとに
> +方向に90度ずつ回転させるようにし、Deafault Button を押すと、
> 軸が元の位置に戻るようにするには、どのようなコードを書けばいいのでしょうか。
procedure TForm1.Button1Click(Sender: TObject); //<-- Deafault Button
begin
FloatAnimation1.StopValue := 0;
FloatAnimation1.StartFromCurrent := True;
FloatAnimation1.Start;
end;
procedure TForm1.Button2Click(Sender: TObject); //<-- X軸回転用 Button
begin
FloatAnimation1.StopValue := Dummy1.RotationAngle.X + 90;
FloatAnimation1.StartFromCurrent := True;
FloatAnimation1.Start;
end;
完全ではありませんが、このようなコードで動作すると思います。
何が完全でないのかは、ご自分で考えてみてくださいね。
できました。
ご指導ありがとうございました。
FloatAnimation1 をX軸回転用 Button の子にしていました。(<--NG動作)
FloatAnimation1 を Dummy1 の子にして教えて頂いたコードにしたら
意図する動作になりました。
>何が完全でないのかは、ご自分で考えてみてくださいね。
わかりました。
ツイート | ![]() |