如何只對圖形的x軸與只對y軸旋轉 |
尚未結案
|
lanyi
一般會員 發表:18 回覆:27 積分:9 註冊:2002-06-26 發送簡訊給我 |
各位大大好,我寫了同時對xy軸旋轉,但是我直覺上認為可先對x軸旋轉,再對y軸旋轉,結果應該是一樣的,我想驗証兩者是一樣的,但是出來的結果與想像中的好像不太一樣,煩請大大告知原因,下為xy旋轉角度的程式,如何做出只對x軸與只對y軸旋轉呢??
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int angle=StrToInt(EdRotate->Text);
Graphics::TBitmap *Bitmap1=new Graphics::TBitmap;
Graphics::TBitmap *Bitmap2=new Graphics::TBitmap; Bitmap1->Assign(ImageSrc->Picture->Bitmap);
float radians=(2*3.1416*angle)/360; cosine=(float)cos(radians);
sine=(float)sin(radians); float Point1x=(-Bitmap1->Height*sine); //-ysin
float Point1y=(Bitmap1->Height*cosine); // ycos float Point2x=(Bitmap1->Width*cosine-Bitmap1->Height*sine);
float Point2y=(Bitmap1->Height*cosine+Bitmap1->Width*sine); float Point3x=(Bitmap1->Width*cosine); //xcos
float Point3y=(Bitmap1->Width*sine); //xsin minx=min(0,min(Point1x,min(Point2x,Point3x)));
miny=min(0,min(Point1y,min(Point2y,Point3y))); maxx=max(Point1x,max(Point2x,Point3x));
maxy=max(Point1y,max(Point2y,Point3y)); Bitmap2Width=(int)ceil(maxx-minx);
Bitmap2Height=(int)ceil(maxy-miny); Bitmap2->Height=Bitmap2Height;
Bitmap2->Width=Bitmap2Width; for(int x=0;x
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |