掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マウス座標から角度を求めるには? (ID:29936)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
マウスで3点をクリックして、1点めを原点(0)とし、2点目(1)と3点目(2)を挟む、 ∠1,0,2の角度を求めたくて、Form1にLabel1を置いて、 次のように書いては見たのですが、どうしても答えが違うようです。 それに、3点目をクリックしたところで、結果を出したいのですが、これも4回目となります。 また、手取り足取りの質問ですが、よろしくお願いします。 Var Mxy:array[0..2] of TPoint; I:Integer=0; TX1,TY1,TX2,TY2:Double; C1,C2,AGL:Double; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin If I<3 then Begin Mxy[I].x:=x; Mxy[I].y:=y; I:=I+1; end else If (I>2) then //3回クリックしたら角度計算 begin TX1:=(Mxy[1].x-Mxy[0].x); TY1:=(Mxy[1].y-Mxy[0].y); TX2:=(Mxy[2].x-Mxy[0].x); TY2:=(Mxy[2].y-Mxy[0].y); C1:= ArcTan2(TY1,TX1); C2:= ArcTan2(TY2,TX2); AGL:=C1-C2; Label1.Caption:='角度:'+FloatToStr(AGL);//結果表示 //点検用 Canvas.MoveTo(Mxy[2].x,Mxy[2].y); Canvas.lineTo(Mxy[0].x,Mxy[0].y); Canvas.lineTo(Mxy[1].x,Mxy[1].y); I:=0; end; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.