DOSUG CZ– розовая кнопка на сайте!
Logo

Математика в графике


Линии


Есть два способа описания линии: параметрический и непараметрический. Параметрическая формула линии основывается на том, что линия может быть задана точкой в пространстве и вектором, проходящим через эту точку. Следующий рисунок демонстрирует эту идею:

Следующую формулу можно использовать для вычисления точек, принадлежащих линии:

    	point(t) = p + t * v


где t - скалярная величина. Варьируя t мы можем получить все точки линии. Если t = 0, то мы получим исходную точку p. Любое ненулевое значение t даст нам точку, принадлежащую линии.

Параметрическое определение может быть дано с помощью двух точек, p и p1, в этом случае вектор проходит через эти две точки, т.е. v = p - p1

Непараметрическое определение линии основывается на следующих формулах:

    	ax + by + c = 0		// для 2D
	ax + by + cz + d = 0	// для 3D


Формула линии в 2D-пространстве

    
   ax + bz = c
   
   где   a*a + b*b = 1 и  c >= 0


Эта формула называтеся "нормальная форма" задания линии. Самый простой способ соблюсти ограничение, приведенное выше, сосотоит в том, чтобы принять

    
   a = sin(q)
   b = cos(q)
   
   где  q  может быть любым числом.


Поэтому 2D-линия в нормальной форме может определяться двумя переменными: q и c. 3D нормальная форма выглядит следующим образом:

    	ax + by + cz + d = 0

	где

	a = cos(r) * sin(q);
	b = cos(r) * cos(q);
	c = sin(r);


В общем, для гарантии того, что линия будет записана в нормальной форме мы производим вычисления в сферических координатах. Для любой из приведенных форм можно нормализовать формулу, записав ее в виде:

    	a1 * x + b1 * y + c1 * z + d1 = 0

	где
	
	t = sqrt(a*a + b*b + c*c);
	a1 = a / t 
	b1 = b / t
	c1 = c / t
	d1 = d / t

Параметрическая формула может быть описана через две точки, p1 = (x1,y1) и p2 = (x2,y2), в этом случае мы имеем:

    
   ax + bz + c = 0 
   
   где
   
      a = (y2 - y1)
      b = -(x2 - x1)
      c = - x1*(y2-y1) + y1*(x2-x1)


Если мы хотим привести выражение к нормальной форме, можно его нормализовать, как это показано выше.

Какое же все-таки преимущество дает нам задание непараметрической формулы в нормальной форме? В этом случае очень легко вычислить расстояние от заданной точки до линии. Для всех точек на линии ax + by+ cz + d равно 0, для всех остальных точек мы получим наименьшее расстояние от точки до линии. Т.к. мы можем получить при вычислении как положительное, так и отрицательное значение, в качестве расстояния мы должны взять абсолютную величину. Плюс ко всему, как нетрудно заметить, расстояние от начала координат (0.0, 0.0, 0.0) до линии равно d.

 
главная - о проекте - контакты - реклама на сайте
 
LBN100 Elite