Вычеслить точку удаленную от прямой
От: Аноним  
Дата: 19.11.09 10:03
Оценка:
Здравствуйте такая задача

есть прямая заданная двумя точками (X1 , Y1) (X2 , Y2), нужно вычислить точку расположенную перпендикулярно к данной прямой и на расстоянии W от точки (X1 , Y1).
не могу понять как это можно сделать, используя целочисленную математику.
Re: Вычеслить точку удаленную от прямой
От: Socrat Россия  
Дата: 19.11.09 10:22
Оценка:
Здравствуйте, Аноним, Вы писали:

А>есть прямая заданная двумя точками (X1 , Y1) (X2 , Y2), нужно вычислить точку расположенную перпендикулярно к данной прямой и на расстоянии W от точки (X1 , Y1).

А>не могу понять как это можно сделать, используя целочисленную математику.

Вряд ли это возможно с целочисленной арифметикой, т.к. координаты точек и длины отрезков связаны через теорему Пифагора, а это вычисление корня.
Например, такой метод: обозначим длину отрезка между точками, задающими прямую, как L. Тогда можно просто повернуть отрезок вокруг первой точки (поменять координаты X и Y), а потом скорректировать точки, умножив отрезок на W/L. Единственное, что могу предложить, вычисление последовательным приближением (например, метод Ньютона).
Re: Вычеслить точку удаленную от прямой
От: GarryIV  
Дата: 19.11.09 14:05
Оценка:
Здравствуйте, Аноним, Вы писали:


А>есть прямая заданная двумя точками (X1 , Y1) (X2 , Y2), нужно вычислить точку расположенную перпендикулярно к данной прямой и на расстоянии W от точки (X1 , Y1).

А>не могу понять как это можно сделать, используя целочисленную математику.

Как может быть точка перпендикулярна чему либо?
WBR, Igor Evgrafov
Re[2]: Вычеслить точку удаленную от прямой
От: TimurSPB Интернет  
Дата: 19.11.09 14:19
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Здравствуйте, Аноним, Вы писали:



А>>есть прямая заданная двумя точками (X1 , Y1) (X2 , Y2), нужно вычислить точку расположенную перпендикулярно к данной прямой и на расстоянии W от точки (X1 , Y1).

А>>не могу понять как это можно сделать, используя целочисленную математику.

GIV>Как может быть точка перпендикулярна чему либо?


Точка перпендикулярна всему и параллельна одновременно.
Make flame.politics Great Again!
Re: Вычеслить точку удаленную от прямой
От: McSeem2 США http://www.antigrain.com
Дата: 19.11.09 20:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>есть прямая заданная двумя точками (X1 , Y1) (X2 , Y2), нужно вычислить точку расположенную перпендикулярно к данной прямой и на расстоянии W от точки (X1 , Y1).

А>не могу понять как это можно сделать, используя целочисленную математику.

О! школота пришла (это я про слово "Вычеслить").
Делается тривиально, если диапазон позволяет. Например, при использовании 32-битовой арифметики, будет покрыта 16-битовая координатная плоскость. Иначе, извините, никак.

Делай раз:

double W = 10; // требуемое расстояние от x1,y1 до искомой точки

Делай два:

double len = sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
double dx = W * (y1 — y2) / len;
double dy = W * (x2 — x1) / len;

Делай три: (искомая точка)

double x = x1 + dx;
double y = y1 + dy;

Соответственно, для целочисленной арифметики все, что нам надо — это уметь вычислить квадратный корень. Есть много способов для этого, гуглить по словам integer square root.
Например, у меня: http://antigrain.com/__code/include/agg_math.h.html#fast_sqrt
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[2]: Вычеслить точку удаленную от прямой
От: sim  
Дата: 20.11.09 05:13
Оценка:
Нужно не забывать, что у этой задачи 2 решения. Искомая точка может находиться с каждой стороны от прямой.

Пример решения на Математике:
W = 1; r1 = {1, 1}; r2 = {3, 4};
(*условие на перпендикулярность отрезков — скалярное произведение равно нулю*)
eq := (x — r1[1]])(r2[1]] — r1[1]]) + (y — r1[2]])(r2[2]] — r1[2]]) == 0
(*расстояние до неизвестной точки*)
eq2 := Norm[{x — r1[1]], y — r1[2]]}] == W
res = Solve[{eq, eq2}, {x, y}]
rf = {x, y} /. res[1]]
rs = {x, y} /. res[2]]
ListPlot[{r1, r2, rf, rs}, PlotRange -> {{0, 5}, {0, 5}}, AspectRatio -> 1];
Re[2]: Вычеслить точку удаленную от прямой
От: IID Россия  
Дата: 20.11.09 05:26
Оценка: :)
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, Аноним, Вы писали:


А>>есть прямая заданная двумя точками (X1 , Y1) (X2 , Y2), нужно вычислить точку расположенную перпендикулярно к данной прямой и на расстоянии W от точки (X1 , Y1).

А>>не могу понять как это можно сделать, используя целочисленную математику.

MS>О! школота пришла (это я про слово "Вычеслить").


у него как раз без ошибки написано. Или я чего-то не понимаю ?
kalsarikännit
Re[3]: Вычеслить точку удаленную от прямой
От: Sealcon190 Соломоновы острова  
Дата: 20.11.09 08:14
Оценка:
Здравствуйте, IID, Вы писали:

IID> у него как раз без ошибки написано. Или я чего-то не понимаю ?


Это Мак после взрыва башни никак в себя не придёт.
Re[3]: Вычеслить точку удаленную от прямой
От: _DAle_ Беларусь  
Дата: 20.11.09 08:37
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, McSeem2, Вы писали:


MS>>Здравствуйте, Аноним, Вы писали:


А>>>есть прямая заданная двумя точками (X1 , Y1) (X2 , Y2), нужно вычислить точку расположенную перпендикулярно к данной прямой и на расстоянии W от точки (X1 , Y1).

А>>>не могу понять как это можно сделать, используя целочисленную математику.

MS>>О! школота пришла (это я про слово "Вычеслить").


IID> у него как раз без ошибки написано. Или я чего-то не понимаю ?


Название топика посмотри.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.