МК для работы на сфере (сохраняй в  *.vbs  и запускай)

 

Построение параллелей для обычной и мира сфер

 

' На сфере мира построить параллель

 

Rr=6.38

Fi=45

Set O = p(0,0,0)

Set N = p(0,1,0)

Krug.ss p(0,0,0), Rr, N

 

Set p1 = PointSfera(45, 0, Rr, 0)

Ngpoint.ss  p1

text.ss p1, "p1"

 

Set p2 = p(-p1.x,p1.y,0)

Ngpoint.ss  p2

text.ss p2, "p2"

Set N = p(0,1,0)

Krug.ss p(0,p1.y,0), p1.x, N

 

' на сфере мира угол 20 градусов

Set p3 = PointSfera(45+20, 0, Rr, 0)

Ngpoint.ss  p3

text.ss p3, "p3"

 

Set Q = PointSfera(45, 0, Rr, 0)

text.ss Q, "Q"

 

' строим параллель

' нормаль

Set Np = NormPlosk (p(0,0,0),p(0,0,10), Q) ' - нормаль для нее

' Krug.ss p(0,0,0), Rr, Np

' центр параллели - есть способ - строим параллеграмм

Parall.ss Q, O, p3

Set D = Parall.P4

Set O1 = PointPointSline (p3, D,O)

text.ss O1, "O1"

Ngpoint.ss  O1

' Надо еще радиус параллели

r1 = DlinaOtr (p3, O1)

' Провести оси в параллели

Otrezok.ss p3, O1

Otrezok.ss p(O1.x, O1.y, r1), p(O1.x, O1.y, -r1)

' Одну из осей полностью построить просто не удалось

' Теперь есть радиус, центр, нормадь

Krug.ss O1, r1, Np

n91= LastNmb()

' Найти пересечение  этой параллели с меридианом

Set N = p(1,0,-0.2)

Krug.ss O, Rr, N

n92= LastNmb()

Set K = Per_line (n91,n92)

Ngpoint.ss  O1

text.ss K, "K"