Приветствую всех.
Вчера пытался нахрапом решить задачу построения прямой по двум точкам. Есть такой файл
data.txt следующего содержания:
#y1 x1 y2 x2 y3 x3
1888 4680 915 4438 660 3288
1887 4668 915 4425 662 3275
Где каждая пара столбцов - это координата двух точек. Я хочу графически решить задачу пересечениях этих прямых. И что-то с разбегу не удалось решить задачу.
Скрипт составил примерно такой:
#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "result.ps"
set grid xtics ytics
set xlabel "X"
set ylabel "Z"
#set xrange [3200:3300]
#set yrange [500:700]
set style line 1 lt 1 lw 1
...
Если применить очевидное решение, и записать:
plot 'data.txt' using 0:1 with lines, '' using 2:3 with lines, '' using 4:5 with lines
То будут построены мааленькие отрезки, от точки до точки, которые совершенно не раскрывают сути. Раньше я решал подобную задачу составлением уравнения прямой (решением уравнения с двумя неизвестными) и писал так:
plot 0.85*x+350.35, (-0.136)*x-509.045, -0.076*x-492.6, 6*x+6652, "< echo ‘1145 -300’" with points ls 1
#Пример не отсюда, последнее - предположительная точка пересечения
Но на мой взгляд - это не самое изящное решение. Как мне кажется решение должно быть тривиальным, но я его не вижу.
Один из вариантов, который я подглядел в другом месте - это рисование решённого уравнения:
x1 = 1 # first point
y1 = 3
x2 = 2 # second point
y2 = 5
f(x) = (y2-y1)/(x2-x1)*x + y2 - x2*(y2-y1)/(x2-x1)
plot [x1:x2] f(x)
Осталось только понять, как заносить значения в x1,y1, y2, x2.
Быть может я тупил в ночи, и всё значительно проще?
P.S. Это задача поиска подземной крепости в Майнкрафт. Первая координата - точка броска ока Края, вторая - точка её падения. Точка пересечения прямых - ориентировочное местоположение крепости. Метод опробован и вполне хорошо ищет с заданной погрешностью (которая меньше размеров крепости).