• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

lcd12864如何实现画圆算法

yhj416606438 2021-04-10 浏览量:378
需要再屏幕任意位置画实心源,只要输入圆心坐标和半径或者指令,如何用函数实现
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 如果有图形处理库,其实比较简单,一般会有相应函数直接调用。

    如果没有,其实实现原理也不是太复杂,主要就是比较繁琐而已。

    其实画图过程就是对显存区域进行填充的过程,简单处理,就是在该圆的外接正方形中再进一步明确哪些点在圆内,哪些点不在圆内而已,需要注意因为圆心位置(X0Y0),所以这个外接正方形和实际显示区域还有交集,需要进一步切分判断(因为矩形和长方形交集判断处理更简单,所以建议先期进行)。此外还需注意的是圆处理涉及到小数,而实际显示区域是位图,只有整数点位,所以需要处理这方面的问题。大致的算法是

    1. 由圆心位置、半径确定外接正方形和屏幕可视区域的交集[(X1Y1)(X2Y2)],其中X1=max(0X0-R)X2=min(128X0+R)Y1=max(0Y0-R)Y2=min(64Y0+R)

    2. x值从X1到X2,取圆上点Y值(每次可能有2点,只有X=X0-R或者X0+R时是唯一点),与Y1和Y2分别比较,其中小的与Y1比较取大值,大的与Y2比较取小值获得 y1和y2,则(xy1)至(xy2)这条线画上颜色。这里以y值从Y1到Y2处理方法类似,只是得出的线就变成(x1y)到(x2y)而已。选取前述2种处理中的一种即可。



    • 发布于 2021-04-10
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 根据屏的整体大小,再通过圆心坐标,半径,计算出圆上每个点的坐标。画点就行
    • 发布于2021-04-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以找一下网上第3方的gui的实现函数。里边都有画圆的实现函数的。
    • 发布于2021-04-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 画圆就是点,这些点的坐标与原心的间距是一样的点组合在一起就是圆了
    • 发布于10小时前
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

lcd12864如何实现画圆算法