关于emwin的多边形旋转函数
2021-05-28 04:01
标签:移动 lazy 为什么 api接口 图形 函数定义 中心 旋转 多边形 ~~~ 介绍一次API接口定义的探秘过程 ~~~ 刚开始看到emwin中关于旋转多边形的接口定义,如下: API如上所示,函数的第一个形参表示目标-多边形的点集的指针; 函数的第二个参数表示源-多边形的点集的指针; 函数的第三个参数表示点集中点的个数(一般会写源-多边形的点集的点个数); 函数的第四个参数表示旋转角度。 那么问题来了,这个形参列表为什么没指明旋转中心呢?到底这个多边形是绕屏幕上的哪个点旋转了Angle角度呢? 只能看具体的实例了,然后看到它的点集的举例是这样的(一个向下的箭头): 从这里可以看到,点集中的点可能不是基于屏幕的坐标,因为按照屏幕坐标向右向下为正的原则,这里很多点都是在屏幕位置不可见的。 猜测他们是相对于某个相对圆心(0,0)的,而且坐标定义也符合向右向下为正的坐标概念的,也就是说这个点集中的点坐标都是这个圆心的相对位置坐标; 所以绘制出来的填充图像才是一个向下的箭头。 那么,也可大胆假设,旋转多边形时应该也就是基于这个圆心旋转,但是这个圆心在屏幕上的坐标又具体是多少? 然后查看这个图形的绘制函数(填充多边形)是怎么定义的? 果不其然,这个填充多边形的函数定义里,形参除了点集的指针和点集中点的个数外,还有一对XY坐标值。这一对起点坐标XY,应该就是将上面的圆心需要移动到屏幕坐标的位置。 经验证,确实就是这么来的。也就是旋转的时候,基于自己的一套中心坐标进行旋转,然后填充(或绘制)的时候再把上述的位置做坐标映射,将中心坐标移动到具体的屏幕位置处; 关于emwin的多边形旋转函数 标签:移动 lazy 为什么 api接口 图形 函数定义 中心 旋转 多边形 原文地址:https://www.cnblogs.com/asa-ben-clc/p/14755484.html
上一篇:C# 将文字写入PDF模板
下一篇:C#端口连接热敏打印机发送指令