我正试图在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)));
答案 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以使其位于触摸中间位置。)