我已经计算出构造一个bezierPath的点,它会给出类似这样的东西:
UIBezierPath *aaa = [UIBezierPath bezierPath];
[aaa moveToPoint:CGPointMake(92.909,94.233)];
[aaa addCurveToPoint:CGPointMake(127.000,153.500) controlPoint1:CGPointMake(92.909,94.233) controlPoint2:CGPointMake(97.675,142.103)];
[aaa addCurveToPoint:CGPointMake(207.409,138.733) controlPoint1:CGPointMake(154.889,164.339) controlPoint2:CGPointMake(207.409,138.733)];
[aaa addCurveToPoint:CGPointMake(153.000,111.500) controlPoint1:CGPointMake(207.409,138.733) controlPoint2:CGPointMake(170.182,78.674)];
[aaa addCurveToPoint:CGPointMake(127.000,91.500) controlPoint1:CGPointMake(141.348,133.759) controlPoint2:CGPointMake(136.058,94.088)];
[aaa addCurveToPoint:CGPointMake(92.909,94.233) controlPoint1:CGPointMake(109.480,86.494) controlPoint2:CGPointMake(92.909,94.233)];
[aaa closePath];
[aaa fill];
用小数部分声明这些数字是否有意义?我问这个是因为这个UIBezierPath,如果以1:1的比例绘制,将意味着这些顶点中的每一个都将位于"子像素"据我所知,图形上的点必须没有分数部分。我的意思是,有一点(300,300),但没有意义(300.83,233.33)。
使用分数浮点数声明bezier是否有意义?
答案 0 :(得分:2)
在大多数情况下,使用整数值没有任何好处。 可能想要在路径的拐角处设置坐标整数(因此拐角具有较少的抗锯齿),但对于其余部分(控制点,沿曲线平滑部分的任何顶点) ),它确实无关紧要(因为无论如何曲线的其余部分都将处于非整数值,并且无论顶点和控制点如何,您都会在整条曲线上看到很多抗锯齿。) / p>
但是你应该直观地将bezier路径与整数值进行比较(没有放大1200%),看看你的想法:
答案 1 :(得分:1)
如果你期望以不同的规模绘制路径(或者只是想为这种可能性做好准备),或者在视网膜设备(或其他未来设备)没有设备的情况下,这是有意义的点与像素之间的一对一映射。
无论如何,它可能有意义,因为CoreGraphics支持通过插值进行子像素绘制。