在CGPoint touchPoint绘制圆圈

时间:2012-08-27 14:10:50

标签: iphone objective-c ios ipad core-graphics

我正试图在UITouch的确切点画一个圆圈(像点一样小)。

问题是,当我从用户触摸中获取touchPoint时,我必须绘制放置圆圈的Rect

要计算出Rect的原点,将它放置成使得在其中绘制的圆将在原始接触点处具有中心点,我使用了Pythagorus定理。

然而,这种做法并不优雅,并不准确。

有更好的方法吗?

UITouch *touch = obj;
CGPoint touchPoint = [touch locationInView:self.view];

CGContextAddEllipseInRect(context,(CGRectMake ((touchPoint.x - 5.7), (touchPoint.y - 5.7)
                                                   , 9.0, 9.0)));

2 个答案:

答案 0 :(得分:3)

你可以这样做

  CFFloat radius=10;
  UITouch *touch = obj;
  CGPoint touchPoint = [touch locationInView:self.view];

  CGContextAddEllipseInRect(context,(CGRectMake ((touchPoint.x - radius/2), (touchPoint.y 
                                              - radius/2)
                                               , radius, radius)));

答案 1 :(得分:0)

我认为你的方法很好。什么比Pythagorus更优雅?至于准确性,为常数添加几个数字,你可以比用户对自己手指位置的感觉和系统计算更准确,为你提供触摸的质心。

更重要的是,我想不出一个好的选择。 (也许一个:使用图像视图执行此操作,图像为圆形,并设置the view's anchor point以使其位于触摸中间位置。)