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

直角座標轉極座標

缺席
yuck
一般會員


發表:7
回覆:3
積分:2
註冊:2008-11-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-30 17:05:56 IP:140.117.xxx.xxx 訂閱
如題所示:

我想要將原本的直角座標軸改為極座標軸

也就是縱座標軸為r ,橫座標軸為角度值

但現在遇到問題為,程式啟動後便死當

所以想請問各位版大 如何加速處理速度,或者是我程式本身有錯

煩請指教 程式如下
[code cpp]
void __fastcall TForm1::Topolar1Click(TObject *Sender)
{
Graphics::TBitmap *bmp = new Graphics::TBitmap();
int i,j;
bmp->Assign(Form1->Image2->Picture->Bitmap);
bmp->PixelFormat=pf24bit;
for(i = 0; i< bmp->Height; i )
{for(j=0; jHeight; j )
{ i=pow((pow(i,2) pow(j,2)),0.5);
if(i!=0) j= atan(j/i);
else j=90; //處理 x 零值
}
}
Form1->Image3->Picture->Assign(bmp);
delete bmp;
[/code]
---------------------------------------------------------------------------

ikk版大 先謝謝你的答覆

我有想過將


[code cpp]
i=pow((pow(i,2) pow(j,2)),0.5);
if(i!=0) j= atan(j/i);
else j=90;
[/code]

在將原來的直角座標軸以r跟q(角度)取代

但不知道如何將座標軸變換?








改為
r=pow((pow(i,2) pow(j,2)),0.5);
if(i!=0) q= atan(j/i);
else q=90;


編輯記錄
yuck 重新編輯於 2009-03-30 17:07:03, 註解 無‧
yuck 重新編輯於 2009-03-30 17:07:49, 註解 無‧
yuck 重新編輯於 2009-03-30 17:09:44, 註解 無‧
yuck 重新編輯於 2009-03-31 17:00:03, 註解 無‧
yuck 重新編輯於 2009-03-31 17:00:47, 註解 無‧
yuck 重新編輯於 2009-03-31 17:04:40, 註解 無‧
ikk
尊榮會員


發表:4
回覆:413
積分:768
註冊:2003-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-31 09:24:32 IP:163.28.xxx.xxx 訂閱
在你的bmp->Height迴圈中, 覆寫了 i,
所以可能導致迴圈無法結速....
------
FPGA驗證, FPGA開發平台, http://smims.com
yuck
一般會員


發表:7
回覆:3
積分:2
註冊:2008-11-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-31 16:55:07 IP:140.117.xxx.xxx 訂閱
編輯記錄
yuck 重新編輯於 2009-03-31 16:56:33, 註解 無‧
yuck 重新編輯於 2009-03-31 16:56:33, 註解 無‧
yuck 重新編輯於 2009-03-31 16:57:26, 註解 無‧
yuck 重新編輯於 2009-03-31 16:59:00, 註解 無‧
yuck 重新編輯於 2009-03-31 17:07:40, 註解 無‧
s8131556
一般會員


發表:0
回覆:9
積分:16
註冊:2003-10-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-31 17:00:57 IP:59.126.xxx.xxx 訂閱
你這程式裡面的i跟j都有點問題
[code cpp] i=pow((pow(i,2) pow(j,2)),0.5);
if(i!=0)
j= atan(j/i);
else
j=90; [/code]

應該要換成像下面這樣吧
[code cpp]
r=pow((pow(i,2) pow(j,2)),0.5);
if(r!=0)
c= atan(j/i);
else
c=90; [/code]

剩下的我不是很了解,就幫不上忙啦
編輯記錄
s8131556 重新編輯於 2009-03-31 17:02:56, 註解 無‧
s8131556 重新編輯於 2009-03-31 17:22:46, 註解 無‧
yuck
一般會員


發表:7
回覆:3
積分:2
註冊:2008-11-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-03-31 17:03:46 IP:140.117.xxx.xxx 訂閱
回 s大  

一開始想法的確是這樣

只是不知道座標軸如何變換

因此想說是否能夠直接將i,j的值替換為r,q的值
編輯記錄
yuck 重新編輯於 2009-03-31 17:05:33, 註解 無‧
yuck 重新編輯於 2009-03-31 17:09:54, 註解 無‧
s8131556
一般會員


發表:0
回覆:9
積分:16
註冊:2003-10-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-04-01 09:25:25 IP:59.126.xxx.xxx 訂閱
直接替換的話,會造成i和j的錯亂,迴圈就會跑不出來啦~


===================引 用 yuck 文 章===================
回 s大

一開始想法的確是這樣

只是不知道座標軸如何變換

因此想說是否能夠直接將i,j的值替換為r,q的值
系統時間:2024-04-25 19:55:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!