任意角度圖片旋轉 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
任意角度圖片旋轉 http://www.ccrun.com/sour/
void S_PicXZ(Graphics::TBitmap *Source,Graphics::TBitmap *NewPic,int angle)// { if(angle>180)angle=360-angle; if(angle<-180)angle=360 angle; float radians=(2*3.1416*angle)/360; float cosine=(float)cos(radians); float sine=(float)sin(radians); float Point1x=(-Source->Height*sine); float Point1y=(Source->Height*cosine); float Point2x=(Source->Width*cosine-Source->Height*sine); float Point2y=(Source->Height*cosine Source->Width*sine); float Point3x=(Source->Width*cosine); float Point3y=(Source->Width*sine); float minx=min((float)0,min(Point1x,min(Point2x,Point3x))); float miny=min((float)0,min(Point1y,min(Point2y,Point3y))); float maxx=max(Point1x,max(Point2x,Point3x)); float maxy=max(Point1y,max(Point2y,Point3y)); int DestBitmapWidth,DestBitmapHeight; if(angle>90&&angle<180) DestBitmapWidth=(int)ceil(-minx); else DestBitmapWidth=(int)ceil(maxx-minx); if(angle>-180&&angle<-90) DestBitmapHeight=(int)ceil(-miny); else DestBitmapHeight=(int)ceil(maxy-miny); NewPic->Height=DestBitmapHeight; NewPic->Width=DestBitmapWidth; for(int x=0;x網路志工聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]--- 發表人 - axsoft 於 2003/02/26 11:39:00 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |