Skip to content

StraightLineToArc

Source code in src/gotrackit/tools/geo_process.py
469
470
def __init__(self):
    pass

StraightLineToArc类静态方法 - arc_curve_line:

  • 基于直线对象生成圆弧线对象

Parameters:

Name Type Description Default
straight_line_obj LineString

直线对象

required
r float

曲度系数, 必须大于0.72, 值越小, 曲度越大

1.0
sample_num int

采样点数目

30

Returns:

Type Description
LineString

圆弧曲线对象

Source code in src/gotrackit/tools/geo_process.py
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
@staticmethod
def arc_curve_line(straight_line_obj: LineString, r: float = 1.0, sample_num: int = 30) \
        -> LineString:

    """StraightLineToArc类静态方法 - arc_curve_line:

    - 基于直线对象生成圆弧线对象

    Args:
        straight_line_obj: 直线对象
        r: 曲度系数, 必须大于0.72, 值越小, 曲度越大
        sample_num: 采样点数目

    Returns:
        圆弧曲线对象
    """
    o_coord, d_coord = straight_line_obj.coords[0], straight_line_obj.coords[-1]
    arc_line_cor = get_arrow(o_loc=o_coord, d_loc=d_coord, ratio=r, sample_num=sample_num)
    return LineString(arc_line_cor)

StraightLineToArc类静态方法 - arc_curve_cor:

  • 计算圆弧坐标:基于起终点坐标生成圆弧坐标

Parameters:

Name Type Description Default
o_loc list or tuple

起点坐标

None
d_loc list or tuple

终点坐标

None
r float

曲度系数, 必须大于0.72, 值越小, 曲度越大

1.0
sample_num int

采样点数目

30

Returns:

Type Description
list

圆弧曲线坐标点

Source code in src/gotrackit/tools/geo_process.py
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
@staticmethod
def arc_curve_cor(o_loc: list or tuple = None, d_loc: list or tuple = None, r: float = 1.0,
                  sample_num: int = 30) -> list:
    """StraightLineToArc类静态方法 - arc_curve_cor:

    - 计算圆弧坐标:基于起终点坐标生成圆弧坐标

    Args:
        o_loc: 起点坐标
        d_loc: 终点坐标
        r: 曲度系数, 必须大于0.72, 值越小, 曲度越大
        sample_num: 采样点数目

    Returns:
        圆弧曲线坐标点
    """
    arc_line_cor = get_arrow(o_loc=o_loc, d_loc=d_loc, ratio=r, sample_num=sample_num)
    return list(arc_line_cor)

StraightLineToArc类静态方法 - bezier_curve_line:

  • 基于直线对象计算得到贝塞尔曲线对象

Parameters:

Name Type Description Default
straight_line_obj LineString

直线对象

required
r float

曲度系数, 值越大, 曲度越大

5.0
sample_num int

采样点数目

30
right_side bool

是否在拓扑前进方向的右侧生成曲线

True

Returns:

Type Description
LineString

贝塞尔曲线对象

Source code in src/gotrackit/tools/geo_process.py
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
@staticmethod
def bezier_curve_line(straight_line_obj: LineString, r: float = 5.0, sample_num: int = 30,
                      right_side: bool = True) -> LineString:
    """StraightLineToArc类静态方法 - bezier_curve_line:

    - 基于直线对象计算得到贝塞尔曲线对象

    Args:
        straight_line_obj: 直线对象
        r: 曲度系数, 值越大, 曲度越大
        sample_num: 采样点数目
        right_side: 是否在拓扑前进方向的右侧生成曲线

    Returns:
        贝塞尔曲线对象
    """
    o_coord, d_coord = straight_line_obj.coords[0], straight_line_obj.coords[-1]
    arc_line_cor = calc_bezier(o_loc=o_coord, d_loc=d_coord, sample_num=sample_num, r=r, right_side=right_side)
    return LineString(arc_line_cor)

StraightLineToArc类静态方法 - bezier_curve_cor:

  • 基于起终点坐标计算得到贝塞尔曲线坐标

Parameters:

Name Type Description Default
o_loc list or tuple

起点坐标

None
d_loc list or tuple

终点坐标

None
r float

曲度系数, 值越大, 曲度越大

1.0
sample_num int

采样点数目

30
right_side bool

是否在拓扑前进方向的右侧生成曲线

True

Returns:

Type Description
list

贝塞尔曲线的坐标点

Source code in src/gotrackit/tools/geo_process.py
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
@staticmethod
def bezier_curve_cor(o_loc: list or tuple = None, d_loc: list or tuple = None, r: float = 1.0,
                     sample_num: int = 30, right_side: bool = True) -> list:
    """StraightLineToArc类静态方法 - bezier_curve_cor:

    - 基于起终点坐标计算得到贝塞尔曲线坐标

    Args:
        o_loc: 起点坐标
        d_loc: 终点坐标
        r: 曲度系数, 值越大, 曲度越大
        sample_num: 采样点数目
        right_side: 是否在拓扑前进方向的右侧生成曲线

    Returns:
        贝塞尔曲线的坐标点
    """
    arc_line_cor = calc_bezier(o_loc=o_loc, d_loc=d_loc, r=r, sample_num=sample_num, right_side=right_side)
    return list(arc_line_cor)

Comments