iOS:使用CGContextAddLineToPoint绘制多条线

iOS:使用CGContextAddLineToPoint绘制多条线,ios,xcode,cgcontext,Ios,Xcode,Cgcontext,我正在用drawrect编写这段代码 CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context, 10); CGContextSetStrokeColorWithColor(context, [UIColor yellowColor].CGColor); CGContextMoveToPoint(context, 502,530); CGContextAddLineToPoint(c

我正在用drawrect编写这段代码

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 10);
CGContextSetStrokeColorWithColor(context, [UIColor yellowColor].CGColor);


CGContextMoveToPoint(context, 502,530);
CGContextAddLineToPoint(context, x2, y2);


CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x3, y3);

CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x4, y4);

NSLog(@"%d,%d--%d,%d--%d,%d",x2,y2,x3,y3,x4,y4);



CGContextStrokePath(context);
但是这个代码总是只画两条不正确的线 它从不画第三条线 当我给出静态值而不是x和y时,代码可以在三行中正常工作 当我记录x和y时,我得到了正确的期望值 但这条线并不是根据这条线画的 我想用不断变化的坐标画4-5条线

请告诉我哪里出了问题 或解决此问题的任何其他替代方案

上面的代码运行良好,它们生成了三行代码(所有代码的起点都是相同的(502530))。我认为你给出的是两个方向相同的点(如x3,y3或x4,y4)的结束位置,这就是为什么你只得到两条线,如果你想区分这些线,你可以用不同的颜色制作这些线,如

int x2, y2, x3, y3,x4, y4;
x2 = 100;
y2 = 100;
x3 = 200;
y3 = 200;
x4 = 200;
y4 = 50;

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 10);

// line 1
CGContextSetStrokeColorWithColor(context, [UIColor yellowColor].CGColor);    
CGContextMoveToPoint(context, 502,530);
CGContextAddLineToPoint(context, x2, y2);
CGContextStrokePath(context);

// line 2
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);    
CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x3, y3);
CGContextStrokePath(context);

// line 3
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);    
CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x4, y4);
CGContextStrokePath(context);

NSLog(@"%d,%d--%d,%d--%d,%d",x2,y2,x3,y3,x4,y4);

上面的代码运行良好,它们生成了三行代码(所有代码的起点都是相同的(502530))。我认为你给出的是两个方向相同的点(如x3,y3或x4,y4)的结束位置,这就是为什么你只得到两条线,如果你想区分这些线,你可以用不同的颜色制作这些线,如

int x2, y2, x3, y3,x4, y4;
x2 = 100;
y2 = 100;
x3 = 200;
y3 = 200;
x4 = 200;
y4 = 50;

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 10);

// line 1
CGContextSetStrokeColorWithColor(context, [UIColor yellowColor].CGColor);    
CGContextMoveToPoint(context, 502,530);
CGContextAddLineToPoint(context, x2, y2);
CGContextStrokePath(context);

// line 2
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);    
CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x3, y3);
CGContextStrokePath(context);

// line 3
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);    
CGContextMoveToPoint(context, 502, 530);
CGContextAddLineToPoint(context, x4, y4);
CGContextStrokePath(context);

NSLog(@"%d,%d--%d,%d--%d,%d",x2,y2,x3,y3,x4,y4);

x2、y2等是否为CGFloat值?它们是否为int值int将起作用,但使它们为CGFloat也不起作用如果您正在靠近,则减小线宽并选中Are x2、y2,etc CGFloat值?它们是int值int会起作用还是不起作用,但使它们CGFloat也不起作用如果你画得更近,那么减小线宽并检查这也是我的情况,当我给出硬编码静态坐标时,我画了三条线,但当我想继续改变线以及x和y的值时继续改变我没有得到想要的结果我只画了两条线我已经检查了x和y的值是否正确并且没有重叠是否有其他方法来画3-4条线这也是我的情况,当我给出硬编码静态坐标时,我画了三条线,但当我想继续改变线和x和y的值时y连续变化我没有得到想要的结果我只画了两条线我已经检查了x和y的值是否正确并且没有重叠有其他方法画3-4条线吗