原文参考:

https://quantum6.blog.csdn.net/article/details/110794038

  在使用过程中,吾发现旋转代码很难理解。如果原来数据有特殊要求,这样是有问题的。于是经过一番实验(列出了一个数组,然后手工旋转,对照算法),找到了新的公式:

static void rotate_90(FT_Bitmap* pBmp)
{int w = pBmp->width;int h = pBmp->rows;int i=0;char* pRotated;int size;int offset=0;size = w * h;pRotated = (char*)malloc(size);memcpy(pRotated, pBmp->buffer, size);for (int y=0; y<h; y++){for (int x = 0; x < w; x++){pRotated[(x)*h+y] = pBmp->buffer[(h-y-1)*w+x];}}dumpBuffer(pRotated, h, w);
}static void rotate_270(FT_Bitmap* pBmp)
{int w = pBmp->width;int h = pBmp->rows;int i=0;char* pRotated;int size;int offset=0;size = w * h;pRotated = (char*)malloc(size);memcpy(pRotated, pBmp->buffer, size);for (int y=0; y<h; y++){for (int x = 0; x < w; x++){pRotated[(w-x-1)*h+y] = pBmp->buffer[y*w+x];}}dumpBuffer(pRotated, h, w);
}

全网首发:以字型为例,一维表示的二维数组矩阵,以易理解的方式旋转90、-90相关推荐

  1. 让一维指针指向二维数组空间的方法!

    背景:int *p;int a[10][10];如何让一维指针p指向a[10][10]开辟的内存空间? 正确的方法: 1.开始我用的笨方法是另外开辟一个内存空间int*p=new int [100]; ...

  2. C语言一维/二维数组解引用难理解点以及一道难题

    C语言指针相关的坑爹题 先来一点简单的 求下面各代码打印结果(32位环境): int a[3][4] = {0}; printf("%d\n",sizeof(a)); printf ...

  3. oracle 一维数转二维数组,js将一维数组转化为二维数组

    遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...

  4. 【千字过程分析】剑指 Offer 04. 二维数组中的查找

    立志用最少的代码做最高效的表达 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数 ...

  5. 一维数组和二维数组矩阵乘法

    #include <iostream> using namespace std; int c[3][2]={0}; int d[6]={0}; //二维数组存储矩阵乘法 void mult ...

  6. mysql二维数据转一维存_二维数组转一维数组

    //二维转一维 var arr=[ [1,2,3], [2,5,6,7], [234,234,545] ] function dir(arr) { var result=[]; for(var r=0 ...

  7. C语言 一维数组、二维数组的创初始化、使用和存储

    目录 数组 一维数组 一维数组的创建和初始化 一维数组的定义 一维数组的初始化 完全初始化 不完全初始化 一维数组的使用 一维数组的使用代码示例 一维数组在内存中的存储 代码示例 二维数组 二维数组的 ...

  8. java二维数组遍历后转为一维数组_java数组(一)

    数组的定义 数组是相同类型数据的有序集合. 简单理解就是:数组是由若干个相同类型的数据,按照一定的顺序组合而成的.数组中的每一个数据我们可以称为元素,每个元素可以通过索引(下标)来访问(获取). 数组 ...

  9. C++阶段01笔记05【数组(概述、一维数组、二维数组)】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 5 数组 5.1 概述 5.2 一维数组 5.2.1 一维数组定义方式 --示例 5.2.2 一维数组数组名 --示例 --练习 ...

  10. C语言 一维数组比二维运算快吗,二维数组与一维数组的性能

    在C中,二维数组只是一维数组的简洁索引scheme. 就像使用一维数组一样,2D数组分配一个连续内存块, A[row][col]符号类似于A[row*NCOLS+col] . 通常,如果要使用单维数组 ...

最新文章

  1. Laravel Predis Error while reading line from the server.
  2. 第十、十一周项目一-点-圆-圆柱类族的设计(2)
  3. Synchronize类锁
  4. spring实现模板文件下载
  5. C#中使用jieba.NET、WordCloudSharp制作词云图
  6. Android第二个小练习:拨号提醒
  7. 百万 Go TCP 连接的思考: epoll方式减少资源占用
  8. hibernate annotations @Entity hql XX not mapped
  9. iOS开发之NSURLSession/NSURLConnection HTTP load failed 的解决办法
  10. 用glew,glfw,FreeImag实现opengl画图-第五课 摄像机
  11. excel公式编辑器_无需支付!免费领取!极度公式丨专业公式 OCR 识别编辑软件...
  12. 对技术的态度/编程修养(上)
  13. 有没有一款软件是测试阅读准确率的,当今各一线股票软件系统指标准确率测试一览表...
  14. 三、数据特性计算(含信道通讯计算、码元速率计算、尼奎斯特定理、香农定理以及相应的练习题)——网络工程师成长之路
  15. 电脑进不去游戏显示重新连接服务器,幻塔无法连接服务器怎么办?游戏进不去解决方法...
  16. 债务人不愿腾房是否能拍卖
  17. 列变位法解密(2016百度之星 - 测试赛(热身,陈题))
  18. js正则的test方法一会返回true一会返回false
  19. Android轮播图原理思路分析+实现方案
  20. Windows10通过局域网共享文件的方法

热门文章

  1. 华北五省计算机应用大赛2018,2019年华北五省(市、自治区)及港澳台大学生计算机应用大赛举行...
  2. 【礼仪大赛策划方案手段】 问穿正装的礼节是什么?到底何为正装?休闲正装?
  3. 网络 如何解决输入路由器管理地址192.168.1.1进不去
  4. rocketmq消息积压
  5. 记录一次日志实现,基于log4j2
  6. redis 主从不同步连接不上
  7. ant 发布web应用脚本
  8. lr_save_var() 截取任意字符串长度,以参数形式输出(参数转变量)
  9. 揭示Win32 API拦截细节/API hooking revealed (2)
  10. 回发或回调参数无效。