我画了一个椭圆
CGRect paperRect = self.bounds;
CGRect strokeRect = CGRectInset(paperRect, 5.0, 5.0);
CGContextAddEllipseInRect(context, strokeRect);
CGContextStrokePath(context);
如何在椭圆上获得点(等距或等径),以便我可以使用CGContextAddArcToPoint
一次连接两个相邻点(在循环中覆盖所有点)。
目标是获得一个椭圆,其边界由较小的弧组成。寻求帮助。
答案 0 :(得分:1)
我可以给你一些方向。我假设你有几何学的基本知识
对于这种要求,如果你在极坐标中工作将会容易得多。在椭圆的圆周上找到等距点应该非常类似于在圆周上找到点,只是在两种情况下方程式会有所不同。
以下链接指向极坐标中的椭圆方程。
http://en.wikipedia.org/wiki/Ellipse#Polar_form_relative_to_center
而且你应该能够很容易地找到圆形表壳的代码。以下是一些相关链接。
Calculating the position of points in a circle
How do I calculate a point on a circle’s circumference?
这就是你的代码大致如下的方式
for (theta = 0 -> 360 degrees)
{
r = ellipse_equation(theta);
x = r*cos(theta) + h;//(h,k) is the center of the ellipse. You need to consider this translation if your ellipse is not centered at origin.
y = r*sin(theta) + k;
//Use these (x,y) values as you want
}
请记住,如果椭圆中心不在原点,则需要进行平移。根据需要选择for
循环的增量。您可以使用弧度范围为0
到2*PI
的theta值,而不是度数。