gpt4 book ai didi

ios - 如何找到曲线和直线的交点?

转载 作者:行者123 更新时间:2023-12-01 16:04:35 25 4
gpt4 key购买 nike

我通过给出11个点来绘制曲线和线,是否有可能检测到两条线(或)两条曲线(或)一条线和一条曲线的交点。

我在使用画线

CGMutablePathRef path = CGPathCreateMutable();

for (int i = 0; i < [_points count]; i++)
{
CGPoint pt = [[_points objectAtIndex:i] CGPointValue];
if (i == 0)
{
CGPathMoveToPoint(path, NULL, pt.x+1, pt.y+1);
}
else
{
CGPathAddLineToPoint(path, NULL, pt.x+1, pt.y+1);
}
}

CGContextSetLineWidth(context, 1.0f);
CGContextSetStrokeColorWithColor(context, curveColor.CGColor);
CGContextAddPath(context, path);
CGContextStrokePath(context);
CGPathRelease(path);

曲线绘制
CGMutablePathRef path = CGPathCreateMutable();

for (int i = 0; i < [_points count]; i++)
{
CGPoint pt = [[_points objectAtIndex:i] CGPointValue];

NSLog(@"%@",NSStringFromCGPoint(pt));

if (i == 0)
{
CGPathMoveToPoint(path, NULL, pt.x, pt.y);
}
else
{
CGPoint curP = [[_points objectAtIndex:i-1] CGPointValue];
float delta = 1.0f;
for (float pointX = curP.x; fabs(pointX - pt.x) > 1e-5f; pointX += delta)
{
float pointY = func(i-1, pointX);
CGPathAddLineToPoint(path, NULL, pointX, pointY);
}
}
CGContextSetLineWidth(context, 1.0f);
CGContextSetStrokeColorWithColor(context, curveColor.CGColor);
CGContextAddPath(context, path);
CGContextStrokePath(context);
CGPathRelease(path);

通过使用这些代码,如何找到相交点。

最佳答案

  • 要找到两条线的交点,请参见this answer
  • 要与一条线和一条曲线相交-曲线只是一组线,因此,如果该线与该组线中的任何一条线相交,则该线与该组线相交。
  • 要相交一条曲线和一条曲线-将一条曲线中的每条线与另一条曲线中的每条线相对应。

  • 有多种优化方法,例如首先碰撞曲线或直线的边界矩形。

    关于ios - 如何找到曲线和直线的交点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20963823/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com