Построение трегольника через центр параллельно xy
Задача возникла для решения ее в системе Вектор при моделировании лучей свертки по точкам свертки и центр так, чтобы ракрыв луча оствался параллельный плоскости xy.
Для решения задачи могут быть использованы методы:
1) Метод OrtOtrGorizontal () перпендикуляр-горизонталь к отрезку общего положения
или
2) Mетод ParalOtr() вычисления второй точки отрезка CD, параллельного и равного AB
Листинг по 1-му методу
// Построение трегольника через задаваемый центр, параллельно xy (см. методы внизу)
var pc = Vector.p(0,0,0); // центр
var pn = Vector.p(4,0,0); // точка на средней прямой треугольника
var p1 = Vector.p(4,-1,0); // 2-я точка треугольника
var p2 = Vector.p(4,1,0); // 3-я точка треугольника
// находим точки на перпендикуляре-горизонтали (длины s=1)
// к отрезку общего положения pc-pn в т. pnvar p2 = Vector.OrtOtrGorizontal (pc,pn, pn, 1)
var p1 = Vector.OrtOtrGorizontal (pc,pn, pn, -1)//строим треугольник и заливаем цветом
Vector.Trian.ss (pc, p1,p2)
Vector.Trian.SetNuNvFillColor (11, 11, 250, 0,0)
var pn = Vector.p(4,0,5)
var p2 = Vector.OrtOtrGorizontal (pc,pn, pn, 1)
var p1 = Vector.OrtOtrGorizontal (pc,pn, pn, -1)
Vector.Trian.ss (pc, p1,p2)
Vector.Trian.SetNuNvFillColor (11, 11, 250, 0,0)
var pn = Vector.p(4,4,5)
var p2 = Vector.OrtOtrGorizontal (pc,pn, pn, 1)
var p1 = Vector.OrtOtrGorizontal (pc,pn, pn, -1)
Vector.Trian.ss (pc, p1,p2)
Vector.Trian.SetNuNvFillColor (11, 11, 250, 0,0)
var pn = Vector.p(-4,4,5)
var p2 = Vector.OrtOtrGorizontal (pc,pn, pn, 1)
var p1 = Vector.OrtOtrGorizontal (pc,pn, pn, -1)
Vector.Trian.ss (pc, p1,p2)
Vector.Trian.SetNuNvFillColor (11, 11, 250, 0,0)
var pn = Vector.p(-4,-4,5)
var p2 = Vector.OrtOtrGorizontal (pc,pn, pn, 1)
var p1 = Vector.OrtOtrGorizontal (pc,pn, pn, -1)
Vector.Trian.ss (pc, p1,p2)
Vector.Trian.SetNuNvFillColor (11, 11, 250, 0,0)// поместить в группу
var n1 = Vector.LastNmb()
var ngroup
Vector.MoveToGroup (1, n1+1, ngroup) // - название группы
// Два метода, которые можно использовать для решения задачи
/*
Метод OrtOtrGorizontal () перпендикуляр-горизонталь
к отрезку общего положенияПерпендикуляр-горизонталь (длины s) к отрезку общего положения AB в т. B
Синтаксис
var D = Vector.OrtOtrGorizontal (A, B, С, s)
Точки A, B - точки прямой общего положения
C - точка на отрезке
s - длина перпендикуляра
D - точка вычисляетсяMетод ParalOtr() вычисления второй точки
отрезка CD, параллельного и равного AB
Синтаксис
var D = Vector.ParalOtr(A, B, C)
A, B, - точки первого отрезка
С - точка второго отрезка
D - искомая точкаЛистинг
var A = Vector.P(0,0,0)
var B = Vector.P(4,4,3)
Vector.otrezok.ss (A,B)
var C = Vector.P(2,0,0)
var D = Vector.ParalOtr(A, B, C)
Vector.otrezok.ss (D,C)
*/