打印
[STM32F1]

请教 stm32 12864 画圆 问题

[复制链接]
2454|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
*********************************************************** 函数名:  circle 函数说明:画圆
传入参数:圆心坐标(x1,y1),半径r 传出参数:无 返回值:  无  ***************************************
*******************/
void circle(int x1, int y1, unsigned int r)
{      int   x, y, d;     x = 0;     y = r;      d = 1-r;                    /* 计算初始值                  */
      while (x <= y)     
{          /* 绘制点(x,y)及其在八分圆中的另外7个对称点             */            
DrawPoint(x1+x, y1+y,1);         
DrawPoint(x1+y, y1+x,1);         
DrawPoint(x1-y, y1+x,1);         
DrawPoint(x1-x, y1+y,1);         
DrawPoint(x1-x, y1-y,1);         
DrawPoint(x1-y, y1-x,1);         
DrawPoint(x1+y, y1-x,1);         
DrawPoint(x1+x, y1-y,1);           
if (d < 0)        
{              
d += 2*x+3;         /* 根据误差项d的判断,决定非最大位移方向上是走还是不走   */         
}         
else         
{              
d += 2*(x-y)+5;            
y--;         
}         
x++;     
}
我是参考这个用stm32 驱动  画的圆,但是 画出来不知为何是下面的图形

微信截图_20150923093652.png (669.1 KB )

微信截图_20150923093652.png
沙发
songchenping| | 2015-9-23 10:50 | 只看该作者
不知道你画圆之前圆心是怎么定义的。

使用特权

评论回复
板凳
书的那页|  楼主 | 2015-9-23 12:58 | 只看该作者
songchenping 发表于 2015-9-23 10:50
不知道你画圆之前圆心是怎么定义的。

circle(32,32,31);//画圆  圆心坐标(32,32) 半径31  不知道这个与  画点函数 有关系么  画刻度线 比较正常  就是画圆 有问题

使用特权

评论回复
地板
songchenping| | 2015-9-23 13:44 | 只看该作者
个人感觉你的出发点有问题,你必须将圆分为4个,先画好四分之一个圆,剩下的就是X.Y取正负值的事情了。

使用特权

评论回复
5
书的那页|  楼主 | 2015-9-23 16:30 | 只看该作者
songchenping 发表于 2015-9-23 13:44
个人感觉你的出发点有问题,你必须将圆分为4个,先画好四分之一个圆,剩下的就是X.Y取正负值的事情了。 ...

enen   回家我再试一试  这个程序 也会是网上的  我问了这个程序的主人  他说 确实能做出来  我这里不知为何   郁闷。。。

使用特权

评论回复
6
gejigeji521| | 2015-9-23 20:00 | 只看该作者
看看原型吧,这哪儿是圆形啊,是菱形了。

使用特权

评论回复
7
Tennasi| | 2015-9-23 20:59 | 只看该作者
这么厉害,是怎么画的啊

使用特权

评论回复
8
lefeng| | 2015-9-23 21:20 | 只看该作者
这哪儿是圆形啊,是菱形

使用特权

评论回复
9
书的那页|  楼主 | 2015-9-23 21:54 | 只看该作者
lefeng 发表于 2015-9-23 21:20
这哪儿是圆形啊,是菱形

对啊 感觉这个 算法有问题  这个 画点函数  第一个 函数 和第四个 函数 等价

使用特权

评论回复
10
书的那页|  楼主 | 2015-9-23 21:55 | 只看该作者
gejigeji521 发表于 2015-9-23 20:00
看看原型吧,这哪儿是圆形啊,是菱形了。

很多 教程上 都写得是这个 我很郁闷 根本就不是 画圆 的  第一个 画点函数 和第四个 函数 等价

使用特权

评论回复
11
书的那页|  楼主 | 2015-9-23 21:56 | 只看该作者
Tennasi 发表于 2015-9-23 20:59
这么厉害,是怎么画的啊

有些  教程误人子弟啊

使用特权

评论回复
12
皈依| | 2015-9-23 22:09 | 只看该作者
开发板里面有12864的画圆的 找一个~

使用特权

评论回复
13
书的那页|  楼主 | 2015-9-23 23:46 | 只看该作者
皈依 发表于 2015-9-23 22:09
开发板里面有12864的画圆的 找一个~

求分享一个 撒   我这边 没有用专业开发版 悲剧啊  谢谢啊

使用特权

评论回复
14
皈依| | 2015-9-24 08:08 | 只看该作者
书的那页 发表于 2015-9-23 23:46
求分享一个 撒   我这边 没有用专业开发版 悲剧啊  谢谢啊

你试试这个,我试过是个圆

111.png (32.94 KB )

111.png

使用特权

评论回复
15
songchenping| | 2015-9-24 09:18 | 只看该作者
书的那页 发表于 2015-9-23 16:30
enen   回家我再试一试  这个程序 也会是网上的  我问了这个程序的主人  他说 确实能做出来  我这里不知 ...

是不是屏的扫面方式有区别啊

使用特权

评论回复
16
书的那页|  楼主 | 2015-9-24 10:51 | 只看该作者
皈依 发表于 2015-9-24 08:08
你试试这个,我试过是个圆

你这个 我找到了 也试过了  可以画出来  但是 圆变大 之后 会有部分 不能显示  感觉 算法一般吧  与花点函数 没关系吧

使用特权

评论回复
17
书的那页|  楼主 | 2015-9-24 10:52 | 只看该作者
songchenping 发表于 2015-9-24 09:18
是不是屏的扫面方式有区别啊

楼上的 那个就可以  但是 画出来的 圆 半径 表示大 就 画的不好  有待改进

使用特权

评论回复
18
gejigeji521| | 2015-9-24 22:00 | 只看该作者
那个要根据数学的算法写吧,几个正选函数。

使用特权

评论回复
19
戈卫东| | 2015-9-24 22:06 | 只看该作者
正方形画得不错

使用特权

评论回复
20
戈卫东| | 2015-9-24 22:09 | 只看该作者
画圆应该会用到三角函数的吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

73

帖子

0

粉丝