全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1469
推到 Plurk!
推到 Facebook!

利用mousedown,取得image 上任兩點之斜率

答題得分者是:jessechan
clarkkent
初階會員


發表:29
回覆:83
積分:32
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-22 17:35:39 IP:61.59.xxx.xxx 未訂閱
各位先進大家好    請問各位,小弟想在image上按任意兩點,求出這兩點所連成線的斜率 寫了以下的程式,數值不對,不知該如何改進?
int X1,Y1,X2,Y2,flag=0;    void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  if (flag==0)
     {
      X1=X;
      Y1=Y;
     }
  if (flag==1)
     {
      X2=X;
      Y2=Y;
      double angle=atan((Y2-Y1)/(X2-X1))*180/3.14159;
      Edit1->Text=IntToStr((int)angle);
     }
  if (flag==0)
      flag=1;
  else
      flag=0;
}
謝謝您,如果有更好的方法,還請您指導讓小弟長知識 新手上路,請多指教 如果此文章違反版規 還請版主告知並刪除 Just do it
------
JUST DO IT
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-22 18:38:56 IP:203.75.xxx.xxx 未訂閱
有幾個地方要改進,   3.14159 請改成 M_PI     double angle=atan((Y2-Y1)/(X2-X1))*180/3.14159;  這一行要檢查 (X2 - X1) 不能等於 0     請把 X1, X2, Y1, Y2 宣告成 double, 不然 ((Y2-Y1)/(X2-X1) 會傳回一個整數, 結果自然不對.    Jesse Chan
------
Jesse Chan
bcb902146
一般會員


發表:67
回覆:33
積分:22
註冊:2002-07-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-22 20:00:55 IP:61.70.xxx.xxx 未訂閱
((Y2-Y1)/(X2-X1)) 這不是斜率公式ㄇ 怎麼會有反正切函數呢 劉維翔
------
劉維翔
clarkkent
初階會員


發表:29
回覆:83
積分:32
註冊:2003-01-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-22 20:08:37 IP:61.59.xxx.xxx 未訂閱
引言: ((Y2-Y1)/(X2-X1)) 這不是斜率公式ㄇ 怎麼會有反正切函數呢 劉維翔
首先先向jessechan大說聲謝謝 bc902146兄,您好 利用atan()function 可以求出原來的角度值 而這才是我要的,可能我的標題定的不是很好 造成您的誤解,十分抱歉 新手上路,請多指教 如果此文章違反版規 還請版主告知並刪除 Just do it 發表人 - clarkkent 於 2003/04/22 20:14:37
------
JUST DO IT
系統時間:2024-05-05 18:26:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!