目录

1、圆半径(r)为 : 1

2、圆半径(r)为 : r

3、例程


三角函数(Trigonometric Functions)是基本初等函数之一,是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数。

三角函数将直角三角形的内角和它的两个边的比值相关联,也可以等价地用与单位圆有关的各种线段的长度来定义。三角函数在研究三角形和圆等几何形状的性质时有重要作用,也是研究周期性现象的基础数学工具。

1、圆半径(r)为 : 1

在屏幕上绘制圆时,一般情况是在对应的 X 与 Y 点进行点的绘制,在 “ 图1 ” 中我们可以看出在平面坐标系中的 x 与 y 坐标的关系式为:( y = sinθ ) 与 ( x = cosθ ),通过该关系式我们可以改变  角度值 (θ) 来确定对应的 x 与 y 坐标,然后通过对应的关系把平面坐标上的 x 与 y 转化成屏幕上的 X 与 Y 点即可完成圆的绘制。

        注意:角度值需要换成正弦、余弦值,所以最后的关系式变为: y = sin(θ*3.14/180)  与  x = cos(θ*3.14/180) 

图1

        对应的三角函数表格:

2、圆半径(r)为 : r

        上面的平面坐标关系式是基于 半径(r) 为 1 时的关系式,正常情况下我们的半径是变化的由此上面的关系式则需要乘以 半径(r) ,如 “ 图2 ” 所示。我们可以看出在平面坐标系中的 x 与 y 坐标的关系式为:( y = sinθ * r ) 与 ( x = cosθ * r )。通过该关系式我们可以改变  角度值 (θ) 来确定对应的 x 与 y 坐标,然后通过对应的关系把平面坐标上的 x 与 y 转化成屏幕上的 X 与 Y 点即可完成圆的绘制。

        注意:角度值需要换成正弦、余弦值,所以最后的关系式变为: y = sin(θ*3.14/180)* 与  x = cos(θ*3.14/180)*r ” 

图2

3、例程

Bresenham画圆算法也称为中点画圆算法,与Bresenham 直线算法一样,其基本的方法是利用判别变量来判断选择最近的像素点,判别变量的数值仅仅用一些加、减和移位运算就可以计算出来。该算法巧妙的利用了圆的八对称性,只计算出一个八分周上的点,其余的七个点利用对称性即可得出。

#define     LCD_Width     128
#define     LCD_Height    64/*** @breif    画圆函数* @param   x1,x2 —— 圆心坐标* @param  r     —— 半径* @retval   none*/
void LCD_Draw_ColorCircle(uint16_t x, uint16_t y, uint16_t r)
{/* Bresenham画圆算法 */int16_t a = 0, b = r;int16_t d = 3 - (r << 1);     //算法决策参数/* 如果圆在屏幕可见区域外,直接退出 */if (x - r < 0 || x + r > LCD_Width || y - r < 0 || y + r > LCD_Height) return;/* 开始画圆 */while(a <= b){LCD_Draw_ColorPoint(x - b, y - a);//调用画点函数LCD_Draw_ColorPoint(x + b, y - a);//调用画点函数LCD_Draw_ColorPoint(x - a, y + b);//调用画点函数LCD_Draw_ColorPoint(x - b, y - a);//调用画点函数LCD_Draw_ColorPoint(x - a, y - b);//调用画点函数LCD_Draw_ColorPoint(x + b, y + a);//调用画点函数LCD_Draw_ColorPoint(x + a, y - b);//调用画点函数LCD_Draw_ColorPoint(x + a, y + b);//调用画点函数LCD_Draw_ColorPoint(x - b, y + a);//调用画点函数a++;if(d < 0)d += 4 * a + 6;else{d += 10 + 4 * (a - b);b--;}LCD_Draw_ColorPoint(x + a, y + b);//调用画点函数}
}

三角函数对应在平面坐标上画圆相关推荐

  1. Bing必应地图中国API - 在地图上画圆

    Bing必应地图中国API - 在地图上画圆 2011-05-24 14:49:37|  分类: Bing&Google|字号 订阅 <变形金刚2>上映4日国内票房过亿,基本上我只 ...

  2. 怎么在地图上画圆 php,SOSO地图API使用(一)在地图上画圆实现思路与代码

    前言:最近在做SOSO地图相关开发,遇到相关画圆知识,特此简单记录下来. 1.在页面中添加SOSO地图API引用,引用脚本: : 2.新建一个地图DIV容器,如下: 3.初始化地图: var cent ...

  3. OpenCV circle图像上画圆

    OpenCV中circle与rectangle函数显示,只不过rectangle在图像中画矩形,circle在图像中画圆. void circle(Mat img, Point center, int ...

  4. sharpMap 在地图上画圆 方法

    /// <summary>         ///  画圆         /// </summary>         /// <param name="p& ...

  5. matlab在图片上画圆_在Matlab中识别的图像周围画一个圆圈

    我有一张参考图片,我想围绕参考图片中存在的图片绘制一个圆圈. 现在,它在参考图片中存在的图片上绘制一个矩形,但我不知道如何使其成为圆形.在Matlab中识别的图像周围画一个圆圈 boxImage = ...

  6. 高德地图 瓦片地图上画圆,线段等

    根据api只能在实际地图上显示,瓦片地图上则不能显示 zIndex需要设置值,大于0

  7. matlab 圆形轨迹,求助:轨迹线上画圆怎么画呢?

    是我没说清楚,我现在的问题是自己编出来一球体中心点的运动轨迹了,下面是要这个运动球体和另一个固定球体相交线. 我的程序是: clear a=109.4712;  %a=α n=100;   % 单位: ...

  8. 如何在百度地图上画镂空圆 Android

    百度API提供了在地图上画圆形的类,但画出圆只能是实心圆,也就是不能实现让圆内没有颜色而圆外有颜色的镂空圆.那么我们应该实现镂空圆呢? 首先我发现API还提供一个画多边形的类.而一个镂空圆分解成两个多 ...

  9. 玩转百度地图(二)之画圆,高德地图、搜搜地图、搜狗地图等稍微修改即可...

    亲爱的博友,您好!之前我发表过一篇帖子为<bing map 画圆,其他百度地图.谷歌地图.搜搜地图.搜狗地图等稍微修改即可>.这个帖子详细讲述了如何在bing地图上实现画圆.可能最近大家使 ...

最新文章

  1. 生产环境主从数据同步不了?
  2. WCF分布式开发步步为赢(12):WCF事务机制(Transaction)和分布式事务编程
  3. 吾八哥学Python(四):了解Python基础语法(下)
  4. 于其炒股,不如......
  5. 在控制台输入一个整数,根据整数打印一个矩形 (Python)
  6. SAP UI5 初学者教程之二十四 - 如何使用 OData 数据模型试读版
  7. 中嵌协会 第1期“嵌入式与物联网”主题论坛将于2010年6月26日在中关村软件园举行...
  8. 模块的封装性分析-读书笔记
  9. ML、DL、CNN学习记录2
  10. mysql 与c_mysql基础:mysql与C结合实例
  11. 数据治理需要注意什么问题
  12. NC气象文件转TIF影像小工具开发(PyQt5 开发)
  13. 注册表故障恢复 必须使用记录或另一备份以恢复包含系统注册表数据的文件。恢复成功
  14. 阿里云 root ssh远程登录 及 普通非root用户 ssh远程登录 Ubuntu1604
  15. 第十四周博客作业西北师范大学|李晓婷
  16. 前端-css美化网页元素(一)字体样式,文本样式
  17. 若依框架使用自带的方法进行图片上传
  18. 幂法 反幂法 matlab,幂法反幂法求解矩阵最大最小特征值及其对应的特征向量
  19. xml中foreach循环
  20. 《introduction to information retrieval》信息检索学习笔记2 词项词汇和倒排记录表

热门文章

  1. 【遗传算法GA】--计算函数最值(Python)
  2. c语言进程伪装,易语言程序伪装软件
  3. 宇宙生命进化的八大密度
  4. python爬虫入门爬取lpl选手价值排行榜
  5. web前端学习之———互联网与HTML篇
  6. 计算机未来设计建筑,未来设计的趋势解析,参数化设计及创意设计案例欣赏
  7. android 面部识别解锁,面部识别解锁软件
  8. 获取海康摄像机的rtsp流,并用VLC测试
  9. 鸿蒙系统如何开启快捷方式,鸿蒙系统功能介绍-华为鸿蒙系统功能详细介绍 - 系统家园...
  10. 基于C#程序触摸屏软件盘开发总结