Чем заменить устаревшую функцию line2d_seg_dist в matplotlib? - PullRequest
0 голосов
/ 23 сентября 2019

Мне интересно, есть ли что-нибудь, чтобы заменить устаревшую mpl_toolkits.mplot3d.proj3d.line2d_seg_dist функцию.Там нет упоминания об этом на странице документации, и я не совсем уверен, как заменить его.

Ответы [ 2 ]

2 голосов
/ 23 сентября 2019

Вы бы просто поместили функцию в свой код:

def line2d_seg_dist(p1, p2, p0):
    """distance(s) from line defined by p1 - p2 to point(s) p0

    p0[0] = x(s)
    p0[1] = y(s)

    intersection point p = p1 + u*(p2-p1)
    and intersection point lies within segment if u is between 0 and 1
    """

    x21 = p2[0] - p1[0]
    y21 = p2[1] - p1[1]
    x01 = np.asarray(p0[0]) - p1[0]
    y01 = np.asarray(p0[1]) - p1[1]

    u = (x01*x21 + y01*y21) / (x21**2 + y21**2)
    u = np.clip(u, 0, 1)
    d = np.hypot(x01 - u*x21, y01 - u*y21)

    return d
0 голосов
/ 23 сентября 2019

В соответствии с документацией 3.1.0 об изменениях в API замена не предусмотрена, и рекомендация заключается в том, чтобы поставщик указанных функций, если они вам нужны, т.е. делает то, что сказал @ImportanceOFBeingErnest.

Multiple internal functions that were exposed as part of the public API of mpl_toolkits.mplot3d are deprecated,

mpl_toolkits.mplot3d.art3d

mpl_toolkits.mplot3d.art3d.norm_angle()
mpl_toolkits.mplot3d.art3d.norm_text_angle()
mpl_toolkits.mplot3d.art3d.path_to_3d_segment()
mpl_toolkits.mplot3d.art3d.paths_to_3d_segments()
mpl_toolkits.mplot3d.art3d.path_to_3d_segment_with_codes()
mpl_toolkits.mplot3d.art3d.paths_to_3d_segments_with_codes()
mpl_toolkits.mplot3d.art3d.get_patch_verts()
mpl_toolkits.mplot3d.art3d.get_colors()
mpl_toolkits.mplot3d.art3d.zalpha()
mpl_toolkits.mplot3d.proj3d

mpl_toolkits.mplot3d.proj3d.line2d()
mpl_toolkits.mplot3d.proj3d.line2d_dist()
mpl_toolkits.mplot3d.proj3d.line2d_seg_dist()
mpl_toolkits.mplot3d.proj3d.mod()
mpl_toolkits.mplot3d.proj3d.proj_transform_vec()
mpl_toolkits.mplot3d.proj3d.proj_transform_vec_clip()
mpl_toolkits.mplot3d.proj3d.vec_pad_ones()
mpl_toolkits.mplot3d.proj3d.proj_trans_clip_points()
If your project relies on these functions, consider vendoring them.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...