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

如何求角度??

尚未結案
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-21 15:57:45 IP:218.164.xxx.xxx 未訂閱
紅色點為從CCD擷取進來的圓的中心,請問要如何求角度D呢??(從x軸為0度算起)
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-21 17:24:22 IP:211.76.xxx.xxx 未訂閱
arctan((y/x)) 用tangent的反函數去取得... 需要注意的是y與x必須宣告為extended
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-22 20:34:28 IP:203.64.xxx.xxx 未訂閱
感謝hahalin大大的指教!!      下圖示小弟用CCD擷取到,各圓的中心,點上旁邊的數值為各點的座標(單位像素),但我不論如何算最大只有約40多度而已,不知識我哪忽略囉還請大大指教
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-22 21:29:56 IP:140.135.xxx.xxx 未訂閱
residue您好:
引言:下圖示小弟用CCD擷取到,各圓的中心,點上旁邊的數值為各點的座標(單位像素),但我不論如何算最大只有約40多度而已,不知識我哪忽略囉還請大大指教
您可以用已知的數值代進您計算角度的程式,這樣就知道是哪邊有問題囉
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-23 11:24:01 IP:203.64.xxx.xxx 未訂閱
感謝taishyang大大的回應!! 小弟昨夜想了想,發現是自己的觀念錯誤( 座標定錯囉 ),而程式是沒問題低,而現在小弟想達到的功能要求是,再白色的圓盤上有三點藍色圓點,分別代表 從 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=13320354&CC=297906">
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-23 12:45:22 IP:61.222.xxx.xxx 未訂閱
如果你的原點有座標 (x0,y0) 綠線的任意點的座標 (x1,y1) (x1-x0) >0 and (y1-y0) >0 tan(a)=(y1-y0)/(x1-x0) a=arctan(tan(a)) 可以有下列情形 分四個象限依序tan值為 ,-,-, 這需要三角函數的應用...
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-24 15:05:02 IP:203.64.xxx.xxx 未訂閱
小弟昨天試了很久,還是無法理解,一個圓盤有360度,但要如何判斷出,當中心落在圓盤時是幾度??還請大大指教!!
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-12-24 15:08:13 IP:61.222.xxx.xxx 未訂閱
找一本國中數學課本 有講三角函數的
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-12-24 21:14:18 IP:203.64.xxx.xxx 未訂閱
感謝大大的指導!!     但是小弟現在所遇到的疑惑是 1 因為在image中的座標與一般,我們常在用的直角座標不同所以有座標轉換的問題(黑色座標代表在image中的座標,紅色表想要轉換成的座標) 2有關角度在四個象限的求得,如何運用程式寫出,可否請大大寫一小例子給小弟參考 謝謝大大!! < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=13347272&CC=298508">
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-12-24 21:56:07 IP:211.76.xxx.xxx 未訂閱
c 我只有在教作業的時候寫過 工作以來都是用delphi比較多 你說的象限問題還有座標轉換的問題在上一篇就有答案了 如果你的原點有座標 (x0,y0) 綠線的任意點的座標 (x1,y1) (x1-x0) (y1-y0) 用tangent來思考,以及反函數arctan 象限的問題 嗯 我剛才回到家 累了沒力氣繼續打字 老話一句 找本數學課本,國中的就有了 我很少用c ,要程式碼請其他大大幫忙囉
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-12-24 22:38:36 IP:218.164.xxx.xxx 未訂閱
謝謝大大 小弟在努力看看!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-12-24 22:43:44 IP:140.135.xxx.xxx 未訂閱
residue您好: 您可以參考下面的code,臨時寫的可能沒有考慮周詳
void __fastcall TForm1::FormPaint(TObject *Sender)
{
 Canvas->Pen->Color=clBlack;
 Canvas->MoveTo(Label1->Left,Label1->Top);
 Form1->Caption="原點位置"+IntToStr(Label1->Left)+", "+IntToStr(Label1->Top);
 Canvas->LineTo(Label1->Left-100,Label1->Top);
 Canvas->LineTo(Label1->Left+100,Label1->Top);
 Canvas->MoveTo(Label1->Left,Label1->Top);
 Canvas->LineTo(Label1->Left,Label1->Top+100);
 Canvas->LineTo(Label1->Left,Label1->Top-100);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
 Canvas->Pen->Color=clBlue;
 Canvas->MoveTo(X,Y);
 Canvas->LineTo(Label1->Left,Label1->Top);
 Canvas->TextOutA(X,Y,IntToStr(X)+","+IntToStr(Y));
 double X0=Label1->Left;
 double Y0=Label1->Top;
 double X1=X;
 double Y1=Y;
 int Angle;
 if (X1!=X0&&Y0>Y1&&X1>X0)       //第一象限
   Angle=-1*atan((Y1-Y0)/(X1-X0))*180/M_PI;
 else if (X1!=X0&&Y0>Y1&&X0>X1)  //第二象限
   Angle=180-atan((Y1-Y0)/(X1-X0))*180/M_PI;
 else if (X1!=X0&&Y1>Y0&&X0>X1)  //第三象限
   Angle=180-atan((Y1-Y0)/(X1-X0))*180/M_PI;
 else if (X1!=X0&&Y1>Y0&&X1>X0)  //第四象限
   Angle=360-atan((Y1-Y0)/(X1-X0))*180/M_PI;
 else if (X1==X0&&Y0>Y1)        //90度
   Angle=90;
 else if (X1==X0&&Y1>Y0)        //270度
   Angle=270;       Edit1->Text=Angle;
}
效果如下圖所示 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-12-27 01:08:32 IP:218.164.xxx.xxx 未訂閱
感謝大大的解答!!  
系統時間:2024-05-10 23:07:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!