${
Orthogonal projection to a general plane
#CODEBASE = "http://cs.uef.fi/matematiikka/java/javasketchpad"
$}
#CODEBASE = "../jsp"
#ARCHIVE = "jsp4.jar"
#CODE = "GSP.class"
#WIDTH = 400
#HEIGHT = 520
#ALIGN = Center
*Frame = 1
*TextFont = "Helvetica"
*TextBold = 1
*TextSize = 18
*LabelFont = "Courier"
*LabelBold = 1
*MeasureFont = "Courier"
*MeasureSize = 14
*MeasureBold = 1
*MeasureInDegrees = 0
*DirectedAngles = 1
*Backblue = 255
*BackGreen = 255
*Backred = 255
${
FixedText( 10, 460,'x1')[ plain, font('Helvetica'), bold, red, justifyCenter];
FixedText(387, 368,'x2')[ plain, font('Helvetica'), bold, blue, justifyCenter];
FixedText(188, 192,'x3')[ plain, font('Helvetica'), bold, color(0,150,0), justifyCenter];
$}
FixedText(300, 10, 'Reset=''R''')[red,bold,justifyLeft];
${
The real lines
color(211,245,167)
$}
$LUpp FixedPoint(0,486)[hidden];
$LLow FixedPoint(0,520)[hidden];
$RLow FixedPoint(400,520)[hidden];
$RUpp FixedPoint(400,486)[hidden];
$ULine Line($LUpp,$RUpp)[black, hidden];
$RectR Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[color(240,200,100)];
$ROu FixedPoint(200,495)[black,label('0')];
$Refu Translation($ROu,25,0)[hidden];
$Rayu Ray($Refu,$ROu)[black, hidden];
$Rykku Point on object($Rayu,1)[white, label('1'), hidden];
$R1u FixedPoint(225,495)[white,label('1')];
$RLu Line($Rykku,$ROu)[black, hidden];
$ROv FixedPoint(200,510)[black,label('0'), hidden];
$Refv Translation($ROv,25,0)[hidden];
$Rayv Ray($Refv,$ROv)[black, hidden];
$Rykkv Point on object($Rayv,1)[white, label('1'), hidden];
$R1v FixedPoint(225,510)[white,label('1'), hidden];
$RLv Line($Rykkv,$ROv)[black, hidden];
${
Direction vector S (viewpoint)
$}
$LUppS FixedPoint(0,520)[hidden];
$LLowS FixedPoint(0,550)[hidden];
$RLowS FixedPoint(800,550)[hidden];
$RUppS FixedPoint(800,520)[hidden];
$ULineS Line($LUppS,$RUppS)[black, hidden];
$RectRS Polygon($LUppS,$LLowS,$RLowS,$RUppS,$LUppS)[color(245,203,200),layer(50),hidden];
$ROS FixedPoint(400,530)[black,label('0'),hidden];
$RefS Translation($ROS,25,0)[hidden];
$RayS Ray($RefS,$ROS)[black, hidden];
$RykkS Point on object($RayS,1)[white, label('1'),hidden];
$RLS Line($RykkS,$ROS)[black,hidden];
$RptS1 Point on object($RLS,9)[label('S1'), red, layer(10),hidden];
$RptS2 Point on object($RLS,4)[label('S2'), blue, layer(10),hidden];
$RptS3 Point on object($RLS,2)[label('S3'), color(0,150,0), layer(10),hidden];
$S1val Ratio/Points($ROS,$RykkS,$RptS1, 5,543,'S1 = ')[red,hidden];
$S2val Ratio/Points($ROS,$RykkS,$RptS2,105,543,'S2 = ')[blue,hidden];
$S3val Ratio/Points($ROS,$RykkS,$RptS3,205,543,'S3 = ')[color(0,150,0),hidden];
${
$SBRLS ShowButton(403,497,'Change direction')($ROS,$RykkS,$RLS,$RptS1,$RptS2,$RptS3,$S1val,$S2val,$S3val,$RectRS)[black,bold];
$HBRLS HideButton(520,498,'Fix')( $ROS,$RykkS,$RLS,$RptS1,$RptS2,$RptS3,$S1val,$S2val,$S3val,$RectRS)[black];
$}
$xykkalfa1 Calculate(0,360,'xykkalfa1 = ','0B- A2^ B2^ + @sqrt / ')($S1val,$S2val,$S3val)[red,hidden];
$xykkalfa2 Calculate(0,380,'xykkalfa2 = ','0AC*- A2^ B2^ + @sqrt / A2^ B2^ + C2^ + @sqrt / ')($S1val,$S2val,$S3val)[red,hidden];
$yykkalfa1 Calculate(0,400,'yykkalfa1 = ','A A2^ B2^ + @sqrt / ')($S1val,$S2val,$S3val)[blue,hidden];
$yykkalfa2 Calculate(0,420,'yykkalfa2 = ','0BC*- A2^ B2^ + @sqrt / A2^ B2^ + C2^ + @sqrt / ')($S1val,$S2val,$S3val)[blue,hidden];
$zykkalfa1 Calculate(0,440,'zykkalfa1 = ','0A*')($S1val,$S2val,$S3val)[color(0,150,0),hidden];
$zykkalfa2 Calculate(0,460,'zykkalfa2 = ','A2^ B2^ + A2^ B2^ + @sqrt / A2^ B2^ + C2^ + @sqrt / ')($S1val,$S2val,$S3val)[color(0,150,0),hidden];
${
The virtual space with movable unit points
$}
$Origo FixedPoint(200,320)[black, label('0')];
$unitp UnitPoint($Origo,50)[white, hidden];
$coord Origin&Unit($Origo,$unitp)[black,hidden];
$xykk PlotXY($xykkalfa2,$coord,$xykkalfa1)[white, label('1'),layer(10)];
$yykk PlotXY($yykkalfa2,$coord,$yykkalfa1)[white, label('1'),layer(10)];
$zykk PlotXY($zykkalfa2,$coord,$zykkalfa1)[white, label('1'),layer(10)];
$xRay Ray($xykk,$Origo)[ hidden];
$xRL Line($xykk,$Origo)[ red, hidden];
$yRay Ray($yykk,$Origo)[ hidden];
$yRL Line($yykk,$Origo)[ blue,hidden];
$zRay Ray($zykk,$Origo)[ hidden];
$zRL Line($zykk,$Origo)[color(0,150,0),hidden];
${
$xykk Point on object( $xRay,1)[ white, label('1')];
$yykk Point on object( $yRay,1)[ white, label('1')];
$zykk Point on object( $zRay,1)[ white, label('1')];
$}
${
$xunit Coordinates($xykk,$coord,0,250,'xunit = ')[red,hidden];
$yunit Coordinates($yykk,$coord,0,270,'yunit = ')[blue,hidden];
$zunit Coordinates($zykk,$coord,0,290,'zunit = ')[color(0,150,0),hidden];
$}
${
restricting the real lines
$}
$RLuLeftEndUp FixedPoint(0,495)[hidden];
$RLvLeftEndLow FixedPoint(0,510)[hidden];
$RLuRightEndUp FixedPoint(400,495)[hidden];
$RLvRightEndLow FixedPoint(400,510)[hidden];
$RLuvis Segment($RLuLeftEndUp,$RLuRightEndUp)[black];
$RLvvis Segment($RLvLeftEndLow,$RLvRightEndLow)[black];
$xM Point on object($xRL,-4)[red];
$xP Point on object($xRL, 5)[red];
$Imx1 ImageOnPoint($xP, '../Projektiot/images/x1.gif');
$xRLvis Segment($xM,$xP)[red];
$yM Point on object($yRL,-3.5)[blue];
$yP Point on object($yRL, 3.5)[blue];
$Imx2 ImageOnPoint($yP, '../Projektiot/images/x2.gif');
$yRLvis Segment($yM,$yP)[blue];
$zM Point on object($zRL,-3)[color(0,150,0)];
$zP Point on object($zRL, 5)[color(0,150,0)];
$Imx3 ImageOnPoint($zP, '../Projektiot/images/x3.gif');
$zRLvis Segment($zM,$zP)[color(0,150,0)];
${
Points and values U and V
$}
$Rptu1 Point on object($RLu,3)[label('V11'), red, layer(10)];
$Rptu2 Point on object($RLu,1)[label('V21'), blue, layer(10)];
$Rptu3 Point on object($RLu,0)[label('V31'), color(0,150,0), layer(10)];
$Rptv1 Point on object($RLv,-1)[label('V12'), red, layer(10)];
$Rptv2 Point on object($RLv,2)[label('V22'), blue, layer(10)];
$Rptv3 Point on object($RLv,0)[label('V32'), color(0,150,0), layer(10)];
$ImV Image(45,5,'../Projektiot/images/V.gif');
$ImLeftParvV Image(0,18,'../Projektiot/images/VasenSulku.gif');
$u1val Ratio/Points($ROu,$Rykku,$Rptu1,15,40,'')[red];
$u2val Ratio/Points($ROu,$Rykku,$Rptu2,15,60,'')[blue];
$u3val Ratio/Points($ROu,$Rykku,$Rptu3,15,80,'')[color(0,150,0)];
$v1val Ratio/Points($ROv,$Rykkv,$Rptv1,65,40,'')[red];
$v2val Ratio/Points($ROv,$Rykkv,$Rptv2,65,60,'')[blue];
$v3val Ratio/Points($ROv,$Rykkv,$Rptv3,65,80,'')[color(0,150,0)];
$ImRightParV Image(103,18,'../Projektiot/images/OikeaSulku.gif');
${
$ImGinv Image(120,40,'../Projektiot/images/Ginv.gif');
$}
${
$ImVT Image(220,3,'../Projektiot/images/VT.gif');
$ImLeftParvVT Image(155,30,'../Projektiot/images/VasenSulkuPieni.gif');
$}
${
$u1val2 Calculate(165, 50,'','A0+')($u1val)[red];
$u2val2 Calculate(215, 50,'','A0+')($u2val)[blue];
$u3val2 Calculate(265, 50,'','A0+')($u3val)[color(0,150,0)];
$v1val2 Calculate(165, 70,'','A0+')($v1val)[red];
$v2val2 Calculate(215, 70,'','A0+')($v2val)[blue];
$v3val2 Calculate(265, 70,'','A0+')($v3val)[color(0,150,0)];
$}
${
$ImRightParVT Image(303,30,'../Projektiot/images/OikeaSulkuPieni.gif');
$}
$SBRLuv ShowButton( 0,464,'Change V1,V2')($ROu,$R1u,$RLuvis,$Rptu1,$Rptu2,$Rptu3,$ROv,$R1v,$RLvvis,$Rptv1,$Rptv2,$Rptv3,$RectR)[black,bold];
$HBRLuv HideButton(100,465,'Fix')( $ROu,$R1u,$RLuvis,$Rptu1,$Rptu2,$Rptu3,$ROv,$R1v,$RLvvis,$Rptv1,$Rptv2,$Rptv3,$RectR)[black];
${
the space vectors
$}
$u1 Dilation/3PtRatio($xykk,$Origo,$ROu,$Rykku,$Rptu1)[red, label('V11'),hidden];
$u2 Dilation/3PtRatio($yykk,$Origo,$ROu,$Rykku,$Rptu2)[blue, label('V21'),hidden];
$u3 Dilation/3PtRatio($zykk,$Origo,$ROu,$Rykku,$Rptu3)[color(0,150,0), label('V31'),hidden];
$u1u2 VectorTranslation($u1,$Origo,$u2)[magenta, label('(V11,V21)'),hidden];
$Su1u2x Segment($u1,$u1u2)[blue,hidden];
$Su1u2y Segment($u2,$u1u2)[red,hidden];
$SOu1u2 Segment($Origo,$u1u2)[magenta,hidden];
$U VectorTranslation($u1u2,$Origo,$u3)[color(255,168,17), label('V1')];
$SUu1u2 Segment($u1u2,$U)[color(0,150,0),hidden];
$SOU Segment($Origo,$U)[color(255,168,17),thick];
$SUu3 Segment($u3,$U)[magenta,hidden];
$v1 Dilation/3PtRatio($xykk,$Origo,$ROv,$Rykkv,$Rptv1)[red, label('V12'),hidden];
$v2 Dilation/3PtRatio($yykk,$Origo,$ROv,$Rykkv,$Rptv2)[blue, label('V22'),hidden];
$v3 Dilation/3PtRatio($zykk,$Origo,$ROv,$Rykkv,$Rptv3)[color(0,150,0), label('V32'),hidden];
$v1v2 VectorTranslation($v1,$Origo,$v2)[magenta, label('(V12,V22)'),hidden];
$Sv1v2x Segment($v1,$v1v2)[blue,hidden];
$Sv1v2y Segment($v2,$v1v2)[red,hidden];
$SOv1v2 Segment($Origo,$v1v2)[magenta,hidden];
$V VectorTranslation($v1v2,$Origo,$v3)[color(255,168,17), label('V2')];
$SVv1v2 Segment($v1v2,$V)[color(0,150,0),hidden];
$SOV Segment($Origo,$V)[color(255,168,17),thick];
$SVv3 Segment($v3,$V)[magenta,hidden];
$UplusV VectorTranslation($U,$Origo,$V)[hidden];
$PlPol Polygon($Origo,$U,$UplusV,$V)[yellow,layer(20)];
$UminusV VectorTranslation($U,$V,$Origo)[hidden];
$UminusV VectorTranslation($U,$V,$Origo)[hidden];
$VminusU VectorTranslation($V,$U,$Origo)[hidden];
$minusUplusV VectorTranslation($VminusU,$UplusV,$UminusV)[hidden];
$PUV Polygon($UplusV,$VminusU,$minusUplusV,$UminusV)[color(236,245,175)];
${
$ImGeq Image(490,140,'../Projektiot/images/G.gif')[layer(70)];
$ImLeftParvVTR Image(540,130,'../Projektiot/images/VasenSulkuPieni.gif');
$}
$a11 Calculate(550, 150,'','AA* BB* + CC* +')($u1val,$u2val,$u3val)[black,hidden];
$a12 Calculate(610, 150,'','AD* BE* + CF* +')($u1val,$u2val,$u3val,$v1val,$v2val,$v3val)[black,hidden];
$a21 Calculate(550, 170,'','A0+')($a12)[black,hidden];
$a22 Calculate(610, 170,'','AA* BB* + CC* +')($v1val,$v2val,$v3val)[black,hidden];
${
$ImRightParVTR Image(660,130,'../Projektiot/images/OikeaSulkuPieni.gif');
$}
$det Calculate( 0, 200,'det = ','AD* BC* -')($a11,$a12,$a21,$a22)[black,hidden];
${
$ImGinvEq Image(120,88,'../Projektiot/images/GinvEq.gif');
$ImLeftParG Image(175,80,'../Projektiot/images/VasenSulkuPieni.gif');
$}
$Ia11 Calculate(185, 100,'','AB/')($a22,$det)[black,hidden];
$Ia12 Calculate(250, 100,'','0A- B/')($a21,$det)[black,hidden];
$Ia21 Calculate(185, 120,'','0A+')($Ia12)[black,hidden];
$Ia22 Calculate(250, 120,'','AB/')($a11,$det)[black,hidden];
${
$ImRightParG Image(305,80,'../Projektiot/images/OikeaSulkuPieni.gif');
$}
${
$ImGinvEq Image(120,88,'../Projektiot/images/GinvEq.gif')[hidden];
$ImLeftParG Image(175,80,'../Projektiot/images/VasenSulkuPieni.gif')[hidden];
$Ia11 Calculate(185, 100,'','AB/')($a22,$det)[black,hidden];
$Ia12 Calculate(250, 100,'','0A- B/')($a21,$det)[black,hidden];
$Ia21 Calculate(185, 120,'','0A+')($Ia12)[black,hidden];
$Ia22 Calculate(250, 120,'','AB/')($a11,$det)[black,hidden];
$ImRightParG Image(305,80,'../Projektiot/images/OikeaSulkuPieni.gif')[hidden];
$}
$c11 Calculate(350, 40,'','AC* BD* +')($Ia11,$Ia12,$u1val,$v1val)[black,hidden];
$c12 Calculate(350, 40,'','AC* BD* +')($Ia11,$Ia12,$u2val,$v2val)[black,hidden];
$c13 Calculate(350, 40,'','AC* BD* +')($Ia11,$Ia12,$u3val,$v3val)[black,hidden];
$c21 Calculate(350, 40,'','AC* BD* +')($Ia21,$Ia22,$u1val,$v1val)[black,hidden];
$c22 Calculate(350, 40,'','AC* BD* +')($Ia21,$Ia22,$u2val,$v2val)[black,hidden];
$c23 Calculate(350, 40,'','AC* BD* +')($Ia21,$Ia22,$u3val,$v3val)[black,hidden];
$p11 Calculate(500, 40,'','AC* BD* +')($u1val,$v1val,$c11,$c21)[black,hidden];
$p12 Calculate(500, 40,'','AC* BD* +')($u1val,$v1val,$c12,$c22)[black,hidden];
$p13 Calculate(500, 40,'','AC* BD* +')($u1val,$v1val,$c13,$c23)[black,hidden];
$p21 Calculate(500, 40,'','AC* BD* +')($u2val,$v2val,$c11,$c21)[black,hidden];
$p22 Calculate(500, 40,'','AC* BD* +')($u2val,$v2val,$c12,$c22)[black,hidden];
$p23 Calculate(500, 40,'','AC* BD* +')($u2val,$v2val,$c13,$c23)[black,hidden];
$p31 Calculate(500, 40,'','AC* BD* +')($u3val,$v3val,$c11,$c21)[black,hidden];
$p32 Calculate(500, 40,'','AC* BD* +')($u3val,$v3val,$c12,$c22)[black,hidden];
$p33 Calculate(500, 40,'','AC* BD* +')($u3val,$v3val,$c13,$c23)[black,hidden];
$Rptx1 Point on object($xRL,2)[red,label('x1')];
$Rptx2 Point on object($yRL,2)[blue,label('x2')];
$Rptx3 Point on object($zRL,2)[color(0,150,0),label('x3')];
$x1x2 VectorTranslation($Rptx1,$Origo,$Rptx2)[magenta, label('(x1,x2)')];
$Sx1x2x Segment($Rptx1,$x1x2)[blue];
$Sx1x2y Segment($Rptx2,$x1x2)[red];
$SOx1x2 Segment($Origo,$x1x2)[magenta];
${
$SOx1x2 Segment($Origo,$x1x2)[black,hidden];
$xpos Coordinates($x1x2,$coord,0,320,'plane (x1,x2) = ')[black];
$x1x2 Point(380,400)[red,label('(x1,x2)')];
$x3 Coordinates($Rptx3,$coord,0,340,'x3 = ')[black];
$x1Parx2 Parallel($yRL,$x1x2)[blue,hidden];
$Rptx1 Intersect($xRL,$x1Parx2)[black, label('x1'),hidden];
$Sx1x2x1 Segment($x1x2,$Rptx1)[blue];
$x2Parx2 Parallel($xRL,$x1x2)[red,hidden];
$Rptx2 Intersect($yRL,$x2Parx2)[black, label('x2'),hidden];
$Sx1x2x2 Segment($x1x2,$Rptx2)[red];
$}
$FTx FixedText(345, 22,'X')[black,bold];
$ImLeftParx Image(310,18,'../Projektiot/images/VasenSulku.gif');
$x1 Ratio/Points($Origo,$xykk,$Rptx1,330,40,'')[black];
$x2 Ratio/Points($Origo,$yykk,$Rptx2,330,60,'')[black];
$x3 Ratio/Points($Origo,$zykk,$Rptx3,330,80,'')[black];
$ImRightParx Image(380,18,'../Projektiot/images/OikeaSulku.gif');
${
$ImEq Image(400,40,'../Projektiot/images/Eq.gif');
$}
$FTxpr FixedText(355, 418,'X''')[black,bold];
$ImLeftParxpr Image(320,418,'../Projektiot/images/VasenSulku.gif');
$x1prval Calculate(333, 440,'','AD* BE* + CF* +')($p11,$p12,$p13,$x1,$x2,$x3)[black];
$x2prval Calculate(333, 460,'','AD* BE* + CF* +')($p21,$p22,$p23,$x1,$x2,$x3)[black];
$x3prval Calculate(333, 480,'','AD* BE* + CF* +')($p31,$p32,$p33,$x1,$x2,$x3)[black];
$ImRightParxpr Image(382,418,'../Projektiot/images/OikeaSulku.gif');
$x1pr Dilation/MarkedRatio($xykk,$Origo,$x1prval)[red,label('x1'''),hidden];
$x2pr Dilation/MarkedRatio($yykk,$Origo,$x2prval)[blue,label('x2'''),hidden];
$x3pr Dilation/MarkedRatio($zykk,$Origo,$x3prval)[red,label('x3'''),hidden];
$X VectorTranslation($x1x2,$Origo,$Rptx3)[black, label('X')];
$SXx1x2 Segment($x1x2,$X)[color(0,150,0)];
$SOX Segment($Origo,$X)[black,thick];
$SXx3 Segment($Rptx3,$X)[magenta];
$x1prx2pr VectorTranslation($x1pr,$Origo,$x2pr)[magenta, label('(x1'',x2'')'),hidden];
$Sx1prx2prx Segment($x1pr,$x1prx2pr)[blue,hidden];
$Sx1prx2pry Segment($x2pr,$x1prx2pr)[red,hidden];
$SOx1prx2pr Segment($Origo,$x1prx2pr)[magenta,hidden];
$Xpr VectorTranslation($x1prx2pr,$Origo,$x3pr)[black, label('X''')];
$SXx1prx2pr Segment($x1prx2pr,$Xpr)[color(0,150,0),hidden];
$SOXpr Segment($Origo,$Xpr)[color(0,230,40),thick,layer(30)];
$SXprx3pr Segment($x3pr,$Xpr)[magenta,hidden];
$SXXpr Segment($X,$Xpr)[blue,thick];
$PolXXpr Polygon($Origo,$X,$Xpr)[color(9,247,255),layer(40)];
${
$ImGinvVT Image(490, 90,'../Projektiot/images/GinvVT.gif');
$ImLeftGinvx Image(550, 70,'../Projektiot/images/VasenSulku.gif');
Calculate(567,90,'','A0+')($x1)[black];
Calculate(567,110,'','A0+')($x2)[black];
Calculate(567,130,'','A0+')($x3)[black];
$ImRightGinvx Image(620, 70,'../Projektiot/images/OikeaSulku.gif');
$}
${
$ImEqVT Image(635, 90,'../Projektiot/images/Eq.gif');
$ImLeftGinvxpr Image(655, 80,'../Projektiot/images/VasenSulkuPieni.gif');
$a1 Calculate(665, 100,'','AD* BE* + CF* +')($c11,$c12,$c13,$x1,$x2,$x3)[black];
$a2 Calculate(665, 120,'','AD* BE* + CF* +')($c21,$c22,$c23,$x1,$x2,$x3)[black];
$ImRightGinvxpr Image(725, 80,'../Projektiot/images/OikeaSulkuPieni.gif');
$}
$Ratio Calculate(665, 100,'','A 0 * 0.15 +')($c11)[black,hidden];
$PtXprX Dilation/MarkedRatio($X,$Xpr,$Ratio)[blue,hidden];
$PtXprO Dilation/MarkedRatio($Origo,$Xpr,$Ratio)[blue,hidden];
$PtTr VectorTranslation($PtXprX,$Xpr,$PtXprO)[blue,hidden];
$OrthPolygon Polygon($Xpr,$PtXprX,$PtTr,$PtXprO)[blue,layer(50)];
${
$SBProj ShowButton(80, 0,'Projection')($ImV,$ImLeftParvV,$u1val,$u2val,$u3val,$v1val,$v2val,$v3val,$ImRightParV,$ImGinv,$ImVT,$ImLeftParvVT,$u1val2,$u2val2,$u3val2,$v1val2,$v2val2,$v3val2,$ImRightParVT,$FTx,$ImLeftParx,$x1,$x2,$x3,$ImRightParx,$ImEq,$FTxpr,$ImLeftParxpr,$x1prval,$x2prval,$x3prval,$ImRightParxpr)[black,bold];
$HBProj HideButton(155,0,'Hide')($ImV,$ImLeftParvV,$u1val,$u2val,$u3val,$v1val,$v2val,$v3val,$ImRightParV,$ImGinv,$ImVT,$ImLeftParvVT,$u1val2,$u2val2,$u3val2,$v1val2,$v2val2,$v3val2,$ImRightParVT,$FTx,$ImLeftParx,$x1,$x2,$x3,$ImRightParx,$ImEq,$FTxpr,$ImLeftParxpr,$x1prval,$x2prval,$x3prval,$ImRightParxpr)[black];
$SBinvG ShowButton(0, 100,'Inverse of G')($ImGinvEq,$ImLeftParG,$Ia11,$Ia12,$Ia21,$Ia22,$ImRightParG)[black,bold];
$HBinvG HideButton(85,100,'Hide')( $ImGinvEq,$ImLeftParG,$Ia11,$Ia12,$Ia21,$Ia22,$ImRightParG)[black];
$}
$SBV1Segm ShowButton(0, 150,'V1 segments')($u1,$u2,$u3,$u1u2,$Su1u2x,$Su1u2y,$SOu1u2,$SUu1u2,$SUu3)[black,bold];
$HBV1Segm HideButton(90,150,'Hide')($u1,$u2,$u3,$u1u2,$Su1u2x,$Su1u2y,$SOu1u2,$SUu1u2,$SUu3)[black];
$SBV2Segm ShowButton(0, 170,'V2 segments')($v1,$v2,$v3,$v1v2,$Sv1v2x,$Sv1v2y,$SOv1v2,$SVv1v2,$SVv3)[black,bold];
$HBV2Segm HideButton(90,170,'Hide')($v1,$v2,$v3,$v1v2,$Sv1v2x,$Sv1v2y,$SOv1v2,$SVv1v2,$SVv3)[black];
$SBXSegm ShowButton(0, 190,'X segments')($Rptx1,$Rptx2,$Rptx3,$x1x2,$Sx1x2x,$Sx1x2y)[black,bold];
$HBXSegm HideButton(90,190,'Hide')($Rptx1,$Rptx2,$Rptx3,$x1x2,$Sx1x2x,$Sx1x2y)[black];
$SBXprSegm ShowButton(0, 210,'X'' segments')($x1pr,$x2pr,$x3pr,$x1prx2pr,$Sx1prx2prx,$Sx1prx2pry,$SOx1prx2pr,$SXx1prx2pr,$SXprx3pr)[black,bold];
$HBXprSegm HideButton(90,210,'Hide')( $x1pr,$x2pr,$x3pr,$x1prx2pr,$Sx1prx2prx,$Sx1prx2pry,$SOx1prx2pr,$SXx1prx2pr,$SXprx3pr)[black];
|
Oheisessa kuviossa voit muutella virittäviä vektoreita vetämällä hiirellä kuvion alaosassa näkyviä
koordinaattiarvoja (punaiset, siniset ja vihreät pisteet).
Kysymys. Resetoi kuvio ja muuta vain vektoreita V1 ja/tai V2. Miksi projektio pysyy samana?
|