Ortogonaaliprojektio tasolle

Kuvio esittää avaruusvektorin X ortogonaalista projisointia kahden vektorin V1 ja V2 virittämään tasoon. Voit muuttaa vektoria X tarttumalla sen koordinaatteihin x1, x2 ja x3.

${ 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?




Martti Pesonen 2003, 2018, 17.11.2019 (+ Henri Tanskanen)