我使用Core Graphics绘制了多边形。但我无法调整多边形的大小。我用UIBezierPath绘制了多边形。这是我的代码
CGPoint gestureStartPoint,currentPosition;
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
currentPath = [[UIBezierPath alloc]init];
currentPath.lineWidth=1;
xx1 = 30;
yy1 = 30;
xx = 30;
yy = 30;
CGPoint gestureStartPoint,currentPosition;
}
return self;
}
- (void)drawRect:(CGRect)rect {
if(drawColor==nil){
[[UIColor redColor]setStroke];
[currentPath stroke];
}
else {
[drawColor setStroke];
[currentPath stroke];
}
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self];
currentPosition.x = xx;
currentPosition.y = yy;
xx = gestureStartPoint.x;
yy = gestureStartPoint.y;
[currentPath moveToPoint:(currentPosition)];
[currentPath addLineToPoint:(gestureStartPoint)];
[self setNeedsDisplay];
}
这是示例resizable Polygon的链接。如何用这样的可调整大小的属性绘制多边形?我不知道从哪里开始制作可调整大小的多边形。
答案 0 :(得分:1)
这比简单地调用一些CoreGraphics魔法更复杂。
要简单地复制您链接到的网站上的逻辑,我首先要解决问题:
识别两种类型的手势:点击和点按 - 拖动。
点按应将x,y(点)添加到您要存储和重绘的点列表中。
点按 - 拖动应该使用用户点按的x,y位置来确定最近的顶点 - 您也应该进行一些最大距离检查。一旦确定用户正在“拖动”哪个顶点,您就可以在列表中操作该点并重绘。