PDA

Просмотр полной версии : Точки, проведенные по линии


flazher
02.01.2009, 15:00
Есть две точки. Между ними проведена линия. На этой линии надо поставить 20 точек с одинаковым расстоянием между собой. Вопрос: как зная только начальные две точки проложить по линии остальные 20?

Division
02.01.2009, 15:05
Векторную алгебру проходили? Тогда в чём дело?
Имеем две точки p1,p2. Имеем вектор v = p2-p1. Делим его на 20 частей. v = v/20.
Потом в цикле делаем так:
Псевдокод:

for (i=0; i<20; i++) {
SetPoint(p1+v*i)
}

flazher
02.01.2009, 15:07
Ага, здорово, получили длинну куска отрезка. А как узнать x и y очередной точки?

Division
02.01.2009, 15:10
В функцию из моего псевдокода SetPoint передаются последовательно координаты всех двадцати точек.

flazher
02.01.2009, 15:22
То есть:
point._x = x0+ ((p2._x - p1._x)/20)*i;
point._y = y0+ ((p2._y - p1._y)/20)*i;
Я правильно понял?

Добавлено через 2 часа 33 минуты
Проблему сам решил.
for (i=0; i<20; i++) {
(p1 - h)/20 * i;
(p2 - h)/20 * i;
}
http://www.flazher.narod.ru/primer.jpg