Lineaarialgebra: Siirron sisältävä operaatio tasossa

Seuraava tason sisäinen laskutoimitus sisältää siirto-ominaisuuden.

${ Lineaarialgebra: operaatiot tasossa $Rykk FixedPoint(280,500)[white, label('1')]; $} #CODEBASE = "../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 500 #HEIGHT= 520 #ALIGN=Left *MeasureInDegrees = 1 *DirectedAngles = 0 *BackRed =230 *BackGreen =255 *BackBlue =255 $RO FixedPoint(250,500)[black,label('0')]; $Ref Translation($RO,10,0)[hidden]; $Ray Ray($Ref,$RO)[hidden]; $Rykk FixedPoint(275,500)[white, label('1')]; $SRykk Segment($RO,$Rykk)[hidden]; $RL Line($Rykk,$RO)[black]; $Rnumc Point on object($RL,2)[red,label('c')]; $SRnumc Segment($RO,$Rnumc)[hidden]; $Rnumd Point on object($RL,-1.5)[color(12,171,3),label('d'),hidden]; $SRnumd Segment($RO,$Rnumd)[hidden]; $Rnumcd Dilation/3PtRatio($Rnumc,$RO,$RO,$Rykk,$Rnumd)[color(200,200,0),label('cd'),hidden]; $SRnumcd Segment($RO,$Rnumcd)[hidden]; $Rnumcpld VectorTranslation($Rnumc,$RO,$Rnumd)[color(30,160,225),label('c+d'),hidden]; $SRnumcpld Segment($RO,$Rnumcpld)[hidden]; $LUpp FixedPoint(0,490)[hidden]; $LLow FixedPoint(0,520)[hidden]; $RLow FixedPoint(500,520)[hidden]; $RUpp FixedPoint(500,490)[hidden]; $RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[color(200,200,0)]; $O FixedPoint(250,250)[black,label('0')]; $unitp UnitPoint($O,50)[hidden]; $ykk FixedPoint(300,250)[white,label('1')]; $coord Origin&Unit($O,$unitp)[black]; $hor AxisX($coord)[black]; $vert AxisY($coord)[hidden]; $start FixedPoint(250,480)[hidden]; $vertsh Ray($O,$start)[black]; $a Point(370,220)[white,label('a'),hidden]; $Sa Segment($O,$a)[color(200,200,0),hidden]; $x Point(388,182)[red,label('x')]; $Sx Segment($O,$x)[red,thick,hidden]; $y Point(275,180)[blue,label('y')]; $Sy Segment($O,$y)[blue,thick,hidden]; $Sax Segment($a,$x)[color(12,171,3),hidden]; $Say Segment($a,$y)[color(12,171,3),hidden]; $x_a VectorTranslation($x,$a,$O)[hidden]; $xply VectorTranslation($x,$O,$y)[hidden]; $Sx_a Segment($O,$x_a)[color(30,160,225),hidden]; $Sxx_a Segment($x,$x_a)[color(30,160,225),hidden]; $xoy VectorTranslation($xply,$a,$O)[magenta,label('x o y'),hidden]; $Sxoy Segment($O,$xoy)[magenta,thick,hidden]; $Syxply Segment($y,$xply)[color(30,160,225),hidden]; $Sxxply Segment($x,$xply)[color(30,160,225),hidden]; $CaSx Circle by radius($a,$Sx)[black,thick,hidden]; $CaSy Circle by radius($a,$Sy)[blue,hidden]; $Sxplyxoy Segment($xply,$xoy)[color(30,160,225),hidden]; $Syxoy Segment($y,$xoy)[color(12,171,3),hidden]; $Sxxoy Segment($x,$xoy)[color(12,171,3),hidden]; $Saxoy Segment($a,$xoy)[color(12,171,3),hidden]; $ABMy AnimateButton( 0, 80,'Animate movement of y')($y,$CaSx)(3)(0)(1)[black]; $ABMx AnimateButton( 0, 60,'Animate movement of x')($x,$CaSy)(5)(0)(1)[black]; $SBxoy ShowButton( 0, 40,'Show x o y (enable animation)')($x,$y,$xoy,$ABMx,$ABMy)[thick,magenta]; $HBxoy HideButton( 0,100,'Hide x o y')($xoy,$Sxoy,$ABMx,$ABMy)[magenta]; $SBSxyy ShowButton( 0,200,'Show segments')($x,$Sx,$y,$Sy,$xoy,$Sxoy)[magenta]; $HBSxyy HideButton( 0,180,'Hide segments')($Sx,$Sy,$Sxoy)[magenta]; $anim1 Point on object($RL,-4)[cyan]; $anim2 Point on object($RL, 4)[cyan]; $Sanim Segment($anim2,$anim1)[hidden]; $ABc AnimateButton(250,60,'Animate scalar c')($Rnumc,$Sanim)(2)(0)(0)[black]; $cx_a Dilation/3PtRatio($x_a,$O,$RO,$Rykk,$Rnumc)[hidden]; $Scx_a Segment($O,$cx_a)[color(30,160,225),hidden]; $cx VectorTranslation($cx_a,$O,$a)[red,label('c*x'),hidden]; $Scx Segment($O,$cx)[red,thick,hidden]; $SBSc ShowButton(400,200,'Show segments')($x,$Sx,$cx,$Scx)[red]; $HBSc HideButton(400,180,'Hide segments')( $Sx, $Scx)[red]; $Scxcx_a Segment($cx,$cx_a)[color(30,160,225),hidden]; $Sacx Segment($a,$cx)[blue,hidden]; $SBy ShowButton(400,60,'Show y')($y)[blue,hidden]; $HBy HideButton(400,20,'Hide y')($y,$Sy)[blue,hidden]; $SBcx ShowButton(250, 40,'Show c*x (enable animation)')($SBy,$HBy,$cx,$ABc)[red]; $HBcx HideButton(250, 80,'Hide c*x')($SBy,$HBy,$Scx,$cx,$ABc)[red]; $verta Parallel($vert,$a)[color(12,171,3),hidden]; $hora Parallel($hor, $a)[color(12,171,3),hidden]; $SBOC ShowButton( 0,330,'Show original construction')($x_a,$Sxx_a,$Sx_a,$cx_a,$Scx_a,$Scxcx_a,$xply,$Sxxply,$Syxply,$Sxplyxoy)[thick,color(30,160,225)]; $HBOC HideButton( 0,350,'Hide original construction')($x_a,$Sxx_a,$Sx_a,$cx_a,$Scx_a,$Scxcx_a,$xply,$Sxxply,$Syxply,$Sxplyxoy)[color(30,160,225)]; $SBO ShowButton( 0,310,'Show axis system in 0')($O,$ykk,$vertsh,$hor,$Sy,$Sx,$Sxoy,$Scx)[black]; $HBO HideButton( 0,250,'Hide axis system in 0')($ykk,$vertsh,$hor,$Sy,$Sx,$Sxoy,$Scx)[black]; $SBaxisa ShowButton( 0,270,'Show other axis system')($a,$Sa,$hora,$verta)[thick,color(12,171,3)]; $HBaxisa HideButton(140,270,'Hide')($a,$Sa,$hora,$verta)[color(12,171,3)]; $SBV ShowButton( 0,290,'Show virtual structure')($a,$Say,$Syxoy,$Saxoy,$Sxxoy,$Say,$Sacx)[thick,color(12,171,3)]; $HBV HideButton(140,290,'Hide')($a,$Say,$Syxoy,$Saxoy,$Sxxoy,$Say,$Sacx)[color(12,171,3)]; $SBOper ShowButton(100, 0,'SHOW OPERATIONS')($x,$y,$xoy,$cx)[black,thick]; $HBOper HideButton(250, 0,'Hide operations')($xoy,$Sxoy,$cx,$Scx)[black];
Oheisessa dynaamisessa kuviossa voi liikutella hiirellä pisteitä (vektoreita) x ja y sekä skalaaria c. Myös animointinappulat saavat aikaan liikettä.




Martti.Pesonen@Joensuu.Fi 2003