Задача №2.15 ( Лавров Василий, 203 группа, 2011/12 уч.гг.)

На гиперболическом параболоиде (x^2)-(y^2)=2z визуализировать прямолинейные образующие, проходящие через динамически заданную точку поверхности. Положение точки задать двумерным слайдером.  Изучить взаимное положение образующих одного семейства. Как меняется плоскость, которой они параллельны? Изучить взаимное положение образующих разных семейств.

Уравнение прямолинейных образующих проходящих через точку ((Subscript[x, 0]),(Subscript[y, 0]),(Subscript[z, 0])):
	
	((x-(Subscript[x, 0]))/1)=((y-(Subscript[y, 0]))/1)=((z-(Subscript[z, 0]))/((Subscript[x, 0])-(Subscript[y, 0])))                                                  ((x-(Subscript[x, 0]))/1)=((y-(Subscript[y, 0]))/(-1))=((z-(Subscript[z, 0]))/((Subscript[x, 0])+(Subscript[y, 0])))
	
	
	
Построим параболоид и два семейства его образующих :

K=1;
Show[
Plot3D[(x^2-y^2)/2, {x,-1.5,1.5},{y,-1.5,1.5},BoundaryStyle->None,
Mesh -> None,PlotStyle->Opacity[0.3],BoxRatios->Automatic,Boxed->False,Axes->False],
Graphics3D[{Blue,Thick,Table[
Line[{{x+K,y+K,(x^2-y^2)/2+K(x-y)},{x-K,y-K,(x^2-y^2)/2-K(x-y)}}],
{x,-1.5,1.5,0.3},{y,-1.5,1.5,0.3}]}],
Graphics3D[{Red,Thick,Table[
Line[{{x+K,y-K,(x^2-y^2)/2+K(x+y)},{x-K,y+K,(x^2-y^2)/2-K(x+y)}}],
{x,-1.5,1.5,0.3},{y,-1.5,1.5,0.3}]}]
]

Введем точку (u,v), днамически задав ее координаты.

Визуализируем точку на параболоиде при помощи двумерного слайдера и проведем через нее прямолинейные образующие:

Manipulate[
u=pt[[1]];
v=pt[[2]];

Show[Plot3D[(x^2-y^2)/2, {x,-1.5,1.5},{y,-1.5,1.5},
Mesh -> None,PlotStyle->Opacity[1],BoxRatios->Automatic,Boxed->False,Axes->False
],
Graphics3D[{Yellow,Sphere[{u, v, (u^2-v^2)/2},0.06]}],

Graphics3D[{Thick,Blue,  Line[{{u+10,v+10,(u^2-v^2)/2+10(u-v)},{u-10,v-10,(u^2-v^2)/2-10(u-v)}}]}],

Graphics3D[{Thick, Red,  Line[{{u+10,v-10,(u^2-v^2)/2+10(u+v)},{u-10,v+10,(u^2-v^2)/2-10(u+v)}}]}]
], {{pt,{0,0}},{-3,-3},{3,3}},Text[Style["Координаты точкu: "Dynamic[{u,v}],Blue,20]],ControlPlacement-> {Left}]

Проиллюстрируем теорему:

Теорема. 
	(1) Любые две образующие разных семейств пересекаются.
	(2) Любые две образующие одного семейства попарно скрещиваются и параллельны одной плоскости.

(1) При помощи Manipulate зададим оба семейства прямолинейных образующих своим ползунком, тем самым покажем, что проиллюстрируем данноеутверждение в пределах рисунка.

Manipulate[

Show[

Plot3D[(x^2-y^2)/2, {x,-1.5,1.5},{y,-1.5,1.5}, BoundaryStyle->None,
Mesh -> None,PlotStyle->Opacity[1],BoxRatios->Automatic,Boxed->False,Axes->False],

Graphics3D[{Thick,Blue,  Line[{{10,v+10,(-v^2)/2-10*v},{-10,v-10,(-v^2)/2+10*v}}]}],

Graphics3D[{Thick, Red,  Line[{{10,u-10,(-u^2)/2+10*u},{-10,u+10,(-u^2)/2-10*u}}]}],

Graphics3D[{Yellow,Sphere[{(u-v)/2, (u+v)/2, -(u*v)/2},0.06]}]
],

{{u,0,"1ое семейство"},-3,3},{{v,0,"2ое семейство"},-3,3}]

(2) При помощи Manipulate зададим две образующих из одного семейства(каждую своим ползунком), также параметрически зададим плоскость:  в качестве направляющих векторов можно взять (1,1,1) и (1,1,-1), а начальную точку зададим третьим ползунком. 
	Для любых двух зафиксированных образующих, двигая плоскость по параболоиду  перпендикулярно* образующим покажем что прямые параллельны ей - если прямая пересечется с плоскостью, то она будет в ней содержаться.
	
	*Напомним, что направляющий вектор образующих (1,1,*), а плоскость мы двигаем вдоль прямой, натянутой на вектор (1,1,0).

Manipulate[

Show[
Plot3D[(x^2-y^2)/2, {x,-1.5,1.5},{y,-1.5,1.5},
Mesh -> None,PlotStyle->Opacity[1],BoxRatios->Automatic,Boxed->False,Axes->False
],
ParametricPlot3D[{-w/2+s+l,w/2+s+l,-(s-l)},{s,-1.5,1.5},{l,-1.5,1.5},Mesh -> None,PlotStyle->Directive[Yellow,Opacity[0.7]]],

Graphics3D[{Thick,Blue, Line[{{10,v+10,(-v^2)/2-10*v},{-10,v-10,(-v^2)/2+10*v}}]}],
Graphics3D[{Thick, Red,  Line[{{10,u+10,(-u^2)/2-10*u},{-10,u-10,(-u^2)/2+10*u}}]}]
],{{u,1,"1ая образующая"},-3,3},{{v,-1,"2ая образующая"},-3,3},{{w,1,"плоскость"},-3,3}]

Прямолинейные образующие:

ParametricPlot3D[Table[{{x+k,y+k,(x^2-y^2)/2+k(x-y)},{x+k,y-k,(x^2-y^2)/2+k(x+y)}},
{x,-1.5,1.5,0.5},{y,-1.5,1.5,0.4}],{k,-2,2},PlotStyle->Directive[Yellow,Opacity[0.5]],Background->Black,Axes->False,Boxed->False]