任意角度图片旋转

2016-02-19 15:30 1 1 收藏

今天图老师小编给大家展示的是任意角度图片旋转,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - 编程语言 】

  

void S_PicXZ(Graphics::TBitmap *Source,Graphics::TBitmap *NewPic,int angle)//
{
if(angle180)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(angle90&&angle180)
 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;xDestBitmapWidth;x++)
 {
 for(int y=0;yDestBitmapHeight;y++)
  {
  int SrcBitmapx=(int)((x+minx)*cosine+(y+miny)*sine);
  int SrcBitmapy=(int)((y+miny)*cosine-(x+minx)*sine);
  if(SrcBitmapx=0&&SrcBitmapxSource-Width&&SrcBitmapy=0&&
  SrcBitmapySource-Height)
   {
   NewPic-Canvas-Pixels[x][y]=Source-Canvas-Pixels[SrcBitmapx][SrcBitmapy];
   }
  }
 }
}

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1609784.html

延伸阅读
标签: 电脑入门
有时我们会随手拍摄一些小视频,我们将它们导入电脑后,发现有些视频的角度不对,要怎么做才能将它们调整回来呢?今天图老师小编就教大家一个实用的小技巧。 解决方法: 1、打开 iMovie(在随机附送的 iLife 软件套装里,需要单独安装),点击文件导入影片,将拍摄的视频导入到 iMovie 事件中; 2、在事件窗口中按 command+a,选中所有的...
标签: 电脑入门
Wps文字里常用到插入图片,但是直接插入图片的话,会出现断行、跨页,影响排版。有一个方法可以实现文档内任意摆放图片,就是应用文本框。先插入一张图片,然后画一个任意大小的文本框,再将图片拖入文本框,调整成合适的大小,可以发现,不管怎么移动文本框,图片也会跟着文本框走了。最后隐藏文本框的边框:光标放在文本框上,变成十字箭头时...
标签: 办公软件
用PPT制作课件,有时需要对图片进行裁剪处理,但在PowerPoint中,利用传统的裁剪方法,即利用“绘图”工具栏上的“裁剪”工具,只能对图片进行矩形裁剪,若想裁剪成圆形、多边形等其他形状该怎么办? 首先利用“绘图”工具栏画一个想要裁剪的图形,如椭圆。选中椭圆后单击“绘图”工具栏上“填充颜色”按钮右侧黑三角,从列表菜单中...
标签: 办公软件
以前往Word中插入图片的时候,如果需要将图片旋转一定的角度,只能在别的软件中将图片先处理好,然后再插入到Word中。如果在Word中,能够像旋转自选图形那样,自由旋转图片就好了,也省却了处理图片的功夫。一次偶然的机会,我发现了一个变通的办法,图片也能随意旋转了。您也试试? 首先在工具栏上点击右键,然后在弹出的快捷菜单中选择“...
标签: 办公软件
用PPT制作课件时,有时需要对图片进行裁剪处理,但在PowerPoint中,利用传统的裁剪方法,即利用“绘图”工具栏上的“裁剪”工具,只能对图片进行矩形裁剪,若想裁剪成圆形、多边形等其他形状,通常方法就无能为力了。其实这个问题在PPT中是可以解决的。 首先利用“绘图”工具栏画一个想要裁剪的图形,如椭圆。选中椭圆后单击“绘图”...

经验教程

752

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部