У меня есть 2 точки (x0, y0) (x1, y1), которые образуют линию L. Я нашел наклон M. Теперь я хочу найти 3 точки между этими двумя точками, которые находятся на L, то есть между ними на точной дистанции, что означает такое же расстояние между всеми точками. Если я измеряю расстояние с помощью символа «-», это может быть примерно так: p1 --- p2 --- p3 --- p4 --- p5 где p1 и p5 являются моими отправными точками.точки нахождения, находящиеся на линии между двумя точками, в точном сегменте, python
Сначала я думал о поиске наклон, делая что-то вроде этого:
def findSlope(p1, p2):
if (p1[0] - p2[0] != 0):
return (p1[1] - p2[1])/p1[0] - p2[0]
else:
return 0
Это довольно легко, но получить реальные очки не приходит мне легко. Я думал о делать что-то вроде этого:
def findThreePoints(p1,p2):
slope = findSlope(p1,p2)
c = p1[1] - slope*p1[0]
x1 = (p1[0] + p2[0])/4
x2 = (p1[0] + p2[0])/2
x3 = (3*(p1[0] + p2[0]))/4
y1 = slope*x1 + c
y2 = slope*x2 + c
y3 = slope*x3 + c
Хотя этот подход работает, это не очень хороший стиль кодирования/эффективность, так как если я хочу функцию, чтобы дать больше, чем 3 очка, мне нужно будет, чтобы это было намного длиннее.
Есть ли встроенный способ сделать это с помощью Numpy или просто более эффективный подход к этому вопросу, который не делает мой код похожим на то, что он был написан только для определенной цели?
Отлично, ТОЧНО тип решения, которое я искал. БЛАГОДАРЯ!! – Sharonica