極座標轉換成直角座標 |
答題得分者是:jow
|
n890377
一般會員 發表:17 回覆:16 積分:21 註冊:2006-07-13 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
建議你下次應該將問題表達清楚,
例如: 轉換公式, 以及輸入, 輸出的要求 還有自己初步的構想, 否則這個問題並 不難, 我想是不太想回應的人居多吧...... 以下程式碼 沒有測試, 請自行除錯 練習練習吧 ^_^ [code cpp] //--------------------------------------------------------------------------- #ifndef fMainH #define fMainH //--------------------------------------------------------------------------- #include #include #include #include <Forms.hpp><br />#include "math.h" //--------------------------------------------------------------------------- /* 轉換(Polar Coordinates, Cartesian Coordinates) 極座標(r,θ)轉換直角座標(r*Cosθ,r*Sinθ) 直角座標(x,y)轉換極座標([x^2 y^2]^(1/2),atan(y/x)) */ //--------------------------------------------------------------------------- struct TCartesianPoint { float x, y; }; //--------------------------------------------------------------------------- struct TPolarPoint { float r, q; }; //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: private: public: __fastcall TForm1(TComponent* Owner); TPolarPoint CartesianToPolar(float x, float y) { TPolarPoint ret; ret.r = pow((pow(x,2) pow(y,2)),0.5); if(x!=0) ret.q = atan(y/x); else ret.q = atan(y/x);//處理 x 零值 return ret; } TCartesianPoint PolarToCartesian(float r, float q) { TCartesianPoint ret; ret.x = r*cos(q); ret.y = r*sin(q); return ret; } TPolarPoint CartesianToPolar(TCartesianPoint &pt) { return CartesianToPolar(pt.x, pt.y); }; TCartesianPoint PolarToCartesian(TPolarPoint &pt) { return PolarToCartesian(pt.r, pt.q); }; }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif [/code]
編輯記錄
jow 重新編輯於 2007-10-24 00:22:20, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |