不使用函数绘制圆圈
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不使用函数绘制圆圈相关的知识,希望对你有一定的参考价值。
所以我想知道circle()
函数是如何工作的,如何在不使用它的情况下绘制圆圈(想做与之相关的事情)。有谁知道这个东西?
答案
栅格化圆的经典方法是使用Midpoint Circle Algorithm。
它的工作原理是跟踪尽可能接近x2 + y2 = r2等值线的像素。这甚至可以通过纯整数计算来完成,这尤其适用于低计算功率器件。
另一答案
圆是距离另一个点恒定距离的一组点,称为中心。
如果你可以绘制由两个lines
定义的points
,你可以在画布上绘制circle
的表示,知道它的center
和它的radius
。
方法是确定位于圆周上的一组连续点,然后用线连接它们。
例如,在python中(读取像伪代码):
import math
def make_circle(center, radius, num_points=40):
"""returns a sequence of points on the circumference
"""
points = [center]
d_theta = 2 * math.pi / num_points
cx, cy = center
for idx in range(num_points + 1):
theta = idx * d_theta
points.append((cx + math.cos(theta) * radius, cy + math.sin(theta) * radius))
return points
如果你想尝试一下,这里是:circles codeskulptor。 您将看到,出于显示目的,圆周上的40个点足以提供可接受的再现。
以上是关于不使用函数绘制圆圈的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何使用onDraw()函数在一个视图中绘制一个圆圈和一个按钮