Lineaarialgebra: Lineaariset perusfunktiot tasossa R2

Seuraavat Javasketchpad-taulut kuvaavat lineaarisia perusfunktioita
projektio,
peilaus,
venytys ja
kierto,
euklidisessa tasossa R2.

Tason laskuoperaatiot ovat tietenkin tavallinen vektorien koordinaateittainen yhteenlasku ja skalaarilla kertominen.

Hiiren avulla voit vetää muuttujaa u ja säätää transformaatioita sopivalla tavalla. Kokeile reippaasti!


1 Projektio (vaaka-akselille)

${ I 1 Projection (on horizontal axis) $} #CODE = "GSP.class" #CODEBASE="../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 400 #HEIGHT= 400 #ALIGN=Left *LabelSize = 12 *MeasureFont = "Helvetica" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 0 *DirectedAngles = 1 *BackRed =220 *BackGreen =255 *BackBlue =255 ${ The Plane Coordinate System $} $x1_label FixedText(375, 190,'x1')[plain,font('Helvetica'),bold, black,justifyCenter]; $x2_label FixedText(215, 20,'x2')[plain,font('Helvetica'),bold, black,justifyCenter]; $O FixedPoint(200,200)[black,label('0')]; $Ogh FixedPoint(200,200)[hidden]; $ykk FixedPoint(225,200)[white,label('1')]; $unitp UnitPoint($O,25)[hidden]; $coord Origin&Unit($O,$unitp)[black,hidden]; $hor AxisX($coord)[black]; $vert AxisY($coord)[black]; ${ Projection on x1-axis $} $u Point(325,175)[red, label('u')]; $utr VectorTranslation($u,$O,$Ogh)[red, label('u'),hidden,traced]; $SOu Segment($O,$u)[red, hidden]; $LuPvert Parallel($vert,$u)[hidden]; $uPr1 Intersect($hor,$LuPvert)[blue,label('Proj1(u)')]; $uPr1tr Intersect($hor,$LuPvert)[blue,label('Proj1(u)'),hidden,traced]; $SOuPr1 Segment($O,$uPr1)[blue,hidden]; $SuuPr1 Segment($u,$uPr1)[magenta,thick,hidden]; ${ Animation circle and segment $} $Ccentr Point(300,150)[red,label('C'),hidden]; $PonCir Point(330,230)[red,label('P'),hidden]; $AnC Circle($Ccentr,$PonCir)[red,hidden]; $LDiam Line($PonCir,$Ccentr)[red,hidden]; $QonCir Intersect1($LDiam,$AnC)[white,hidden]; $SDiam Segment($QonCir,$PonCir)[red,hidden]; $AstS Point(50,170)[red,label('A'),hidden]; $endS Point(150,250)[red,label('B'),hidden]; $Segm Segment($AstS,$endS)[red,hidden]; $SBPr1S ShowButton( 0, 30,'Segments')($SOu,$SOuPr1,$SuuPr1)[magenta,hidden]; $HBPr1S HideButton( 65, 30,'Hide' )($SOu,$SOuPr1,$SuuPr1)[magenta,hidden]; $SBPr1Tr ShowButton( 0, 50,'Trace')($utr,$uPr1tr)[blue,hidden]; $HBPr1Tr HideButton( 65, 50,'Stop' )($utr,$uPr1tr)[blue,hidden]; $ABPr1Seg AnimateButton(0,100,'Animate on segment')($u,$Segm)(3)(0)(0)[red,hidden]; $ABPr1Cir AnimateButton(0,120,'Animate on circle') ($u,$AnC)(3)(0)(0)[red,hidden]; $SBSTPr1 ShowButton( 0, 80,'Animations')($AstS,$endS,$Segm,$ABPr1Seg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABPr1Cir)[black,hidden]; $HBSTPr1 HideButton( 75, 80,'Hide' ) ($AstS,$endS,$Segm,$ABPr1Seg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABPr1Cir)[black,hidden]; $SBPr1 ShowButton( 0, 0,'PROJECTION on x1')($SuuPr1,$SBPr1S,$HBPr1S,$SBPr1Tr,$HBPr1Tr,$SBSTPr1,$HBSTPr1)[blue]; $HBPr1 HideButton(130, 0,'Hide')( $SuuPr1,$SOu,$SOuPr1,$SuuPr1,$utr,$uPr1tr,$SBPr1S,$HBPr1S,$SBPr1Tr,$HBPr1Tr,$SBSTPr1,$HBSTPr1,$AstS,$endS,$Segm,$ABPr1Seg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABPr1Cir)[blue];

I 2 Peilaus eli heijastus (vaaka-akselin suhteen)

${ I 2 Reflection (over horizontal axis) $} #CODE = "GSP.class" #CODEBASE="../jsp" #ARCHIVE="jsp4.jar" #WIDTH = 406 #HEIGHT= 400 #ALIGN=Left *LabelSize = 12 *MeasureFont = "Helvetica" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 0 *DirectedAngles = 1 *BackRed =255 *BackGreen =220 *BackBlue =255 ${ The Plane Coordinate System $} $O FixedPoint(200,200)[black,label('0')]; $Ogh FixedPoint(200,200)[hidden]; $ykk FixedPoint(225,200)[white,label('1')]; $unitp UnitPoint($O,25)[hidden]; $coord Origin&Unit($O,$unitp)[black,hidden]; $hor AxisX($coord)[black]; $vert AxisY($coord)[black]; ${ Reflection over x1-axis $} $u Point(325,175)[red, label('u')]; $utr VectorTranslation($u,$O,$Ogh)[red, label('u'),hidden,traced]; $SOu Segment($O,$u)[red, hidden]; $uRe1 Reflection($u,$hor)[blue, label('Refl1(u)')]; $uRe1tr Reflection($u,$hor)[blue, label('Refl1(u)'),hidden,traced]; $SOuRe1 Segment($O,$uRe1)[blue,hidden]; $SuuRe1 Segment($u,$uRe1)[magenta,thick, hidden]; ${ Animation circle and segment $} $Ccentr Point(300,150)[red,label('C'),hidden]; $PonCir Point(330,230)[red,label('P'),hidden]; $AnC Circle($Ccentr,$PonCir)[red,hidden]; $LDiam Line($PonCir,$Ccentr)[red,hidden]; $QonCir Intersect1($LDiam,$AnC)[white,hidden]; $SDiam Segment($QonCir,$PonCir)[red,hidden]; $AstS Point(50,170)[red,label('A'),hidden]; $endS Point(150,250)[red,label('B'),hidden]; $Segm Segment($AstS,$endS)[red,hidden]; $SBRe1S ShowButton( 0, 30,'Segments')($SOu,$SOuRe1,$SuuRe1)[magenta,hidden]; $HBRe1S HideButton( 65, 30,'Hide' )($SOu,$SOuRe1,$SuuRe1)[magenta,hidden]; $SBRe1Tr ShowButton( 0, 50,'Trace')($utr,$uRe1tr)[blue,hidden]; $HBRe1Tr HideButton( 65, 50,'Stop' )($utr,$uRe1tr)[blue,hidden]; $ABRe1Seg AnimateButton(0,100,'Animate on segment')($u,$Segm)(3)(0)(0)[red,hidden]; $ABRe1Cir AnimateButton(0,120,'Animate on circle') ($u,$AnC)(3)(0)(0)[red,hidden]; $SBSTRe1 ShowButton( 0, 80,'Animations')($AstS,$endS,$Segm,$ABRe1Seg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABRe1Cir)[black,hidden]; $HBSTRe1 HideButton( 75, 80,'Hide' ) ($AstS,$endS,$Segm,$ABRe1Seg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABRe1Cir)[black,hidden]; $SBRe1 ShowButton( 0, 0,'REFLECTION over x1')($SuuRe1,$SBRe1S,$HBRe1S,$SBRe1Tr,$HBRe1Tr,$SBSTRe1,$HBSTRe1)[blue]; $HBRe1 HideButton(142, 0,'Hide')($SuuRe1,$SOu,$SOuRe1,$SuuRe1,$utr,$uRe1tr,$SBRe1S,$HBRe1S,$SBRe1Tr,$HBRe1Tr,$SBSTRe1,$HBSTRe1,$AstS,$endS,$Segm,$ABRe1Seg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABRe1Cir)[blue];

I 3 Suurennus eli venytys skalaarilla c x2-akselin suunnassa

${ I 3 Dilation by scalar c x2-akselin suunnassa $} #CODE = "GSP.class" #CODEBASE="../jsp" #ARCHIVE="jsp4.jar" #WIDTH = 400 #HEIGHT= 420 #ALIGN=Left *LabelSize = 12 *MeasureFont = "Helvetica" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 0 *DirectedAngles = 1 *BackRed =255 *BackGreen =255 *BackBlue =220 ${ Real line $} $RO FixedPoint(200,400)[black,label('0'), hidden]; $Ref Translation($RO,10,0)[hidden]; $Ray Ray($Ref,$RO)[black, hidden]; $Rykk Point on object($Ray,2.5)[white, label('1'), hidden]; $RL Line($Rykk,$RO)[black, hidden]; $Rptc Point on object($RL,1.5)[label('c'), red, hidden]; $Rc Ratio/Points($RO,$Rykk,$Rptc,330,340,'c = ')[red]; $LUpp FixedPoint(0,380)[hidden]; $LLow FixedPoint(0,420)[hidden]; $RLow FixedPoint(400,420)[hidden]; $RUpp FixedPoint(400,380)[hidden]; $RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[yellow,hidden]; ${ The Plane Coordinate System $} $O FixedPoint(200,200)[black,label('0')]; $Ogh FixedPoint(200,200)[hidden]; $ykk FixedPoint(225,200)[white,label('1')]; $unitp UnitPoint($O,25)[hidden]; $coord Origin&Unit($O,$unitp)[black,hidden]; $hor AxisX($coord)[black]; $vert AxisY($coord)[black]; $start FixedPoint(200,385)[hidden]; $vertsh Ray($O,$start)[black]; ${ Dilation by c $} $u Point(325,175)[red, label('u')]; $utr VectorTranslation($u,$O,$Ogh)[red, label('u'), hidden, traced]; $SOu Segment($O,$u)[red, hidden]; $LuParVert Parallel($vert,$u)[hidden]; $ux Intersect($LuParVert,$hor)[hidden]; $ux2Dil Dilation/3PtRatio($u,$ux,$RO,$Rykk,$Rptc)[blue, label('Dil2(u)')]; $ux2Diltr Dilation/3PtRatio($u,$ux,$RO,$Rykk,$Rptc)[blue, label('Dil2(u)'), hidden, traced]; $SOux2Dil Segment($O,$ux2Dil)[blue, hidden]; $Suux2Dil Segment($u,$ux2Dil)[magenta, thick, hidden]; ${ Animation circle and segment $} $Ccentr Point(300,150)[red,label('C'),hidden]; $PonCir Point(330,230)[red,label('P'),hidden]; $AnC Circle($Ccentr,$PonCir)[red,hidden]; $LDiam Line($PonCir,$Ccentr)[red,hidden]; $QonCir Intersect1($LDiam,$AnC)[white,hidden]; $SDiam Segment($QonCir,$PonCir)[red,hidden]; $AstS Point(50,170)[red,label('A'),hidden]; $endS Point(150,250)[red,label('B'),hidden]; $Segm Segment($AstS,$endS)[red,hidden]; $SBDilS ShowButton( 0, 30,'Segments')($SOu,$SOux2Dil,$Suux2Dil)[magenta, hidden]; $HBDilS HideButton( 65, 30,'Hide' )($SOu,$SOux2Dil,$Suux2Dil)[magenta, hidden]; $SBDilTr ShowButton( 0, 50,'Trace')($utr,$ux2Diltr)[blue,hidden]; $HBDilTr HideButton( 65, 50,'Stop' )($utr,$ux2Diltr)[blue,hidden]; $ABDilSeg AnimateButton(0,100,'Animate on segment')($u,$Segm)(3)(0)(0)[red, hidden]; $LocSDil Locus($ux2Dil,$u,$Segm,10)[blue,thick,hidden]; $SBLocSDil ShowButton( 0,120,'Locus')($LocSDil)[blue,hidden]; $HBLocSDil HideButton(65,120,'Hide') ($LocSDil)[blue,hidden]; $ABDilCir AnimateButton(0,140,'Animate on circle') ($u,$AnC)(3)(0)(0)[red,hidden]; $LocCDil Locus($ux2Dil,$u,$AnC,40)[blue,thick,hidden]; $SBLocCDil ShowButton( 0,160,'Locus')($LocCDil)[blue,hidden]; $HBLocCDil HideButton(65,160,'Hide') ($LocCDil)[blue,hidden]; $SBSTDil ShowButton( 0, 80,'Animations')($AstS,$endS,$Segm,$ABDilSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABDilCir,$SBLocSDil,$HBLocSDil,$SBLocCDil,$HBLocCDil)[black,hidden]; $HBSTDil HideButton( 75, 80,'Hide' ) ($AstS,$endS,$Segm,$ABDilSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABDilCir,$SBLocSDil,$HBLocSDil,$SBLocCDil,$HBLocCDil,$LocSDil,$LocCDil)[black,hidden]; $SBDil ShowButton( 0, 0,'DILATION by c')($Suux2Dil,$SBDilS,$HBDilS,$SBDilTr,$HBDilTr,$SBSTDil,$HBSTDil)[blue]; $HBDil HideButton(105, 0,'Hide')($Suux2Dil,$SOu,$SOux2Dil,$Suux2Dil,$utr,$ux2Diltr,$SBDilS,$HBDilS,$SBDilTr,$HBDilTr,$SBSTDil,$HBSTDil,$AstS,$endS,$Segm,$ABDilSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABDilCir,$SBLocSDil,$HBLocSDil,$SBLocCDil,$HBLocCDil,$LocSDil,$LocCDil)[blue]; $SBc ShowButton(290,355,'Change c')($RO,$RL,$Rptc,$RectA)[red]; $HBc HideButton(350,355,'Fix c')( $RO,$RL,$Rptc,$RectA)[red];

I 4 Suurennus eli venytys skalaarilla c

${ I 4 Dilation by scalar c (from the origin) $} #CODE = "GSP.class" #CODEBASE="../jsp" #ARCHIVE="jsp4.jar" #WIDTH = 406 #HEIGHT= 420 #ALIGN=Left *LabelSize = 12 *MeasureFont = "Helvetica" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 0 *DirectedAngles = 1 *BackRed =255 *BackGreen =225 *BackBlue =220 ${ Real line $} $RO FixedPoint(200,400)[black,label('0'), hidden]; $Ref Translation($RO,10,0)[hidden]; $Ray Ray($Ref,$RO)[black, hidden]; $Rykk Point on object($Ray,2.5)[white, label('1'), hidden]; $RL Line($Rykk,$RO)[black, hidden]; $Rptc Point on object($RL,1.5)[label('c'), red, hidden]; $Rc Ratio/Points($RO,$Rykk,$Rptc,330,360,'c = ')[red]; $LUpp FixedPoint(0,386)[hidden]; $LLow FixedPoint(0,420)[hidden]; $RLow FixedPoint(406,420)[hidden]; $RUpp FixedPoint(406,386)[hidden]; $RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[yellow,hidden]; ${ The Plane Coordinate System $} $O FixedPoint(200,200)[black,label('0')]; $Ogh FixedPoint(200,200)[hidden]; $ykk FixedPoint(225,200)[white,label('1')]; $unitp UnitPoint($O,25)[hidden]; $coord Origin&Unit($O,$unitp)[black,hidden]; $hor AxisX($coord)[black]; $vert AxisY($coord)[black]; $start FixedPoint(200,385)[hidden]; $vertsh Ray($O,$start)[black]; ${ Dilation by c $} $u Point(325,175)[red, label('u')]; $utr VectorTranslation($u,$O,$Ogh)[red, label('u'), hidden, traced]; $SOu Segment($O,$u)[red, hidden]; $uDil Dilation/3PtRatio($u,$O,$RO,$Rykk,$Rptc)[blue, label('Dil(u)')]; $uDiltr Dilation/3PtRatio($u,$O,$RO,$Rykk,$Rptc)[blue, label('Dil(u)'),hidden,traced]; $SOux2Dil Segment($O,$uDil)[blue, hidden]; $Suux2Dil Segment($u,$uDil)[magenta, thick, hidden]; ${ Animation circle and segment $} $Ccentr Point(300,150)[red,label('C'),hidden]; $PonCir Point(330,230)[red,label('P'),hidden]; $AnC Circle($Ccentr,$PonCir)[red,hidden]; $LDiam Line($PonCir,$Ccentr)[red,hidden]; $QonCir Intersect1($LDiam,$AnC)[white,hidden]; $SDiam Segment($QonCir,$PonCir)[red,hidden]; $AstS Point(50,170)[red,label('A'),hidden]; $endS Point(150,250)[red,label('B'),hidden]; $Segm Segment($AstS,$endS)[red,hidden]; $SBDilS ShowButton( 0, 30,'Segments')($SOu,$SOux2Dil,$Suux2Dil)[magenta, hidden]; $HBDilS HideButton( 65, 30,'Hide' )($SOu,$SOux2Dil,$Suux2Dil)[magenta, hidden]; $SBDilTr ShowButton( 0, 50,'Trace')($utr,$uDiltr)[blue,hidden]; $HBDilTr HideButton( 65, 50,'Stop' )($utr,$uDiltr)[blue,hidden]; $ABDilSeg AnimateButton(0,100,'Animate on segment')($u,$Segm)(3)(0)(0)[red, hidden]; $LocSDil Locus($uDil,$u,$Segm,10)[blue,thick,hidden]; $SBLocSDil ShowButton( 0,120,'Locus')($LocSDil)[blue,hidden]; $HBLocSDil HideButton(65,120,'Hide') ($LocSDil)[blue,hidden]; $ABDilCir AnimateButton(0,140,'Animate on circle') ($u,$AnC)(3)(0)(0)[red,hidden]; $LocCDil Locus($uDil,$u,$AnC,40)[blue,thick,hidden]; $SBLocCDil ShowButton( 0,160,'Locus')($LocCDil)[blue,hidden]; $HBLocCDil HideButton(65,160,'Hide') ($LocCDil)[blue,hidden]; $SBSTDil ShowButton( 0, 80,'Animations')($AstS,$endS,$Segm,$ABDilSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABDilCir,$SBLocSDil,$HBLocSDil,$SBLocCDil,$HBLocCDil)[black,hidden]; $HBSTDil HideButton( 75, 80,'Hide' ) ($AstS,$endS,$Segm,$ABDilSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABDilCir,$SBLocSDil,$HBLocSDil,$SBLocCDil,$HBLocCDil,$LocSDil,$LocCDil)[black,hidden]; $SBDil ShowButton( 0, 0,'DILATION by c')($Suux2Dil,$SBDilS,$HBDilS,$SBDilTr,$HBDilTr,$SBSTDil,$HBSTDil)[blue]; $HBDil HideButton(105, 0,'Hide')( $Suux2Dil,$SBDilS,$HBDilS,$SBDilTr,$HBDilTr,$SBSTDil,$HBSTDil,$SOu,$SOux2Dil,$Suux2Dil,$utr,$uDiltr,$AstS,$endS,$Segm,$ABDilSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABDilCir,$SBLocSDil,$HBLocSDil,$SBLocCDil,$HBLocCDil,$LocSDil,$LocCDil)[blue]; $SBc ShowButton(300,365,'Change c')($RO,$RL,$Rptc,$RectA)[red]; $HBc HideButton(362,365,'Fix c')( $RO,$RL,$Rptc,$RectA)[red];

I 5 Kierto (kulman a verran positiiviseen suuntaan)

${ I 5 Rotation (by angle a) $} #CODE = "GSP.class" #CODEBASE="../jsp" #ARCHIVE="jsp4.jar" #WIDTH = 406 #HEIGHT= 420 #ALIGN=Left *LabelSize = 12 *MeasureFont = "Helvetica" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 0 *DirectedAngles = 1 *BackRed =220 *BackGreen =220 *BackBlue =255 ${ Real line $} $RO FixedPoint(200,400)[black,label('0'), hidden]; $Ref Translation($RO,25,0)[hidden]; $Ray Ray($Ref,$RO)[black, hidden]; $Rykk Point on object($Ray,1)[white, label('1'), hidden]; $RL Line($Rykk,$RO)[black, hidden]; $Piper3 Dilation($Rykk,$RO,-1.0472)[cyan,label('-Pi/3'), hidden]; $Piper2 Dilation($Rykk,$RO,1.571)[green,label('Pi/2'), hidden]; $Pi Dilation($Rykk,$RO,3.14159)[green,label('Pi'), hidden]; $PTPi Dilation($Rykk,$RO,4.7124)[green,label('3Pi/2'), hidden]; $kaksPi Dilation($Rykk,$RO,6.283)[green,label('2Pi'), hidden]; $Rpta Point on object($RL,0.5)[label('a'),red, hidden]; $Ra Ratio/Points($RO,$Rykk,$Rpta,330,360,'a = ')[red]; $LUpp FixedPoint(0,386)[hidden]; $LLow FixedPoint(0,420)[hidden]; $RLow FixedPoint(406,420)[hidden]; $RUpp FixedPoint(406,386)[hidden]; $RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[yellow, hidden]; ${ The Plane Coordinate System $} $O FixedPoint(200,200)[black,label('0')]; $Ogh FixedPoint(200,200)[hidden]; $ykk FixedPoint(225,200)[white,label('1')]; $unitp UnitPoint($O,25)[hidden]; $coord Origin&Unit($O,$unitp)[black,hidden]; $hor AxisX($coord)[black]; $vert AxisY($coord)[black]; $start FixedPoint(200,385)[hidden]; $vertsh Ray($O,$start)[black]; ${ Rotation by a $} $u Point(325,175)[red, label('u')]; $utr VectorTranslation($u,$O,$Ogh)[red, label('u'),hidden,traced]; $SOu Segment($O,$u)[red, hidden]; $uRot Rotation/MeasuredAngle($u, $O, $Ra) [blue,label('Rot(u)')]; $uRottr Rotation/MeasuredAngle($u, $O, $Ra) [blue,label('Rot(u)'),hidden,traced]; $SOuRot Segment($O,$uRot)[blue, hidden]; $SuuRot Segment($u,$uRot)[magenta, thick, hidden]; ${ Animation circle and segment $} $Ccentr Point(300,150)[red,label('C'),hidden]; $PonCir Point(330,230)[red,label('P'),hidden]; $AnC Circle($Ccentr,$PonCir)[red,hidden]; $LDiam Line($PonCir,$Ccentr)[red,hidden]; $QonCir Intersect1($LDiam,$AnC)[white,hidden]; $SDiam Segment($QonCir,$PonCir)[red,hidden]; $AstS Point(50,170)[red,label('A'),hidden]; $endS Point(150,250)[red,label('B'),hidden]; $Segm Segment($AstS,$endS)[red,hidden]; $SBRotS ShowButton( 0, 30,'Segments')($SOu,$SOuRot,$SuuRot)[magenta,hidden]; $HBRotS HideButton( 65, 30,'Hide' )($SOu,$SOuRot,$SuuRot)[magenta,hidden]; $SBRotTr ShowButton( 0, 50,'Trace')($utr,$uRottr)[blue,hidden]; $HBRotTr HideButton( 65, 50,'Stop' )($utr,$uRottr)[blue,hidden]; $ABRotSeg AnimateButton(0,100,'Animate on segment')($u,$Segm)(3)(0)(0)[red,hidden]; $LocSRot Locus($uRot,$u,$Segm,10)[blue,thick,hidden]; $SBLocSRot ShowButton( 0,120,'Locus')($LocSRot)[blue,hidden]; $HBLocSRot HideButton(65,120,'Hide') ($LocSRot)[blue,hidden]; $ABRotCir AnimateButton(0,140,'Animate on circle') ($u,$AnC)(3)(0)(0)[red,hidden]; $LocCRot Locus($uRot,$u,$AnC,40)[blue,thick,hidden]; $SBLocCRot ShowButton( 0,160,'Locus')($LocCRot)[blue,hidden]; $HBLocCRot HideButton(65,160,'Hide') ($LocCRot)[blue,hidden]; $SBSTRot ShowButton( 0, 80,'Animations')($AstS,$endS,$Segm,$ABRotSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABRotCir,$SBLocSRot,$HBLocSRot,$SBLocCRot,$HBLocCRot)[black,hidden]; $HBSTRot HideButton( 75, 80,'Hide' ) ($AstS,$endS,$Segm,$ABRotSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABRotCir,$SBLocSRot,$HBLocSRot,$SBLocCRot,$HBLocCRot,$LocSRot,$LocCRot)[black,hidden]; $SBRot ShowButton( 0, 0,'ROTATION by a')($SuuRot,$SBRotS,$HBRotS,$SBRotTr,$HBRotTr,$SBSTRot,$HBSTRot)[blue]; $HBRot HideButton(110, 0,'Hide')( $SuuRot,$SBRotS,$HBRotS,$SBRotTr,$HBRotTr,$SBSTRot,$HBSTRot,$SOu,$SOuRot,$SuuRot,$utr,$uRottr,$AstS,$endS,$Segm,$ABRotSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABRotCir,$SBLocSRot,$HBLocSRot,$SBLocCRot,$HBLocCRot,$LocSRot,$LocCRot)[blue]; $SBa ShowButton(300,365,'Change a')($RO,$RL,$Rpta,$RectA)[red]; $HBa HideButton(362,365,'Fix a')( $RO,$RL,$Rpta,$RectA)[red];

6 Siirto vakiovektorin a verran (ei ole lineaarinen!)

${ I 6 Translation by a constant vector a (is not linear!) $} #CODE = "GSP.class" #CODEBASE="../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 406 #HEIGHT= 400 #ALIGN=Left *LabelSize = 12 *MeasureFont = "Helvetica" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 0 *DirectedAngles = 1 *BackRed =220 *BackGreen =255 *BackBlue =255 ${ The Plane Coordinate System $} $O FixedPoint(200,200)[black,label('0')]; $Ogh FixedPoint(200,200)[hidden]; $ykk FixedPoint(225,200)[white,label('1')]; $unitp UnitPoint($O,25)[hidden]; $coord Origin&Unit($O,$unitp)[black,hidden]; $hor AxisX($coord)[black]; $vert AxisY($coord)[black]; $a Point(230,220)[magenta, label('a'), bold, hidden]; $SOa Segment($O,$a)[magenta, thick, hidden]; ${ Projection on x1-axis $} $u Point(325,175)[red, label('u')]; $utr VectorTranslation($u,$O,$Ogh)[red, label('u'),hidden, traced]; $SOu Segment($O,$u)[red, hidden]; $uTr VectorTranslation($u,$O,$a)[blue, label('T(u)')]; $uTrtr VectorTranslation($u,$O,$a)[blue, label('T(u)'), hidden, traced]; $SOuTr Segment($O,$uTr)[blue,hidden]; $SuuTr Segment($u,$uTr)[magenta, thick, hidden]; ${ Animation circle and segment $} $Ccentr Point(300,150)[red,label('C'),hidden]; $PonCir Point(330,230)[red,label('P'),hidden]; $AnC Circle($Ccentr,$PonCir)[red,hidden]; $LDiam Line($PonCir,$Ccentr)[red,hidden]; $QonCir Intersect1($LDiam,$AnC)[white,hidden]; $SDiam Segment($QonCir,$PonCir)[red,hidden]; $AstS Point(50,170)[red,label('A'),hidden]; $endS Point(150,250)[red,label('B'),hidden]; $Segm Segment($AstS,$endS)[red,hidden]; $SBTrS ShowButton( 0, 30,'Segments')($SOu,$SOuTr,$SuuTr)[magenta,hidden]; $HBTrS HideButton( 65, 30,'Hide' )($SOu,$SOuTr,$SuuTr)[magenta,hidden]; $SBTrTr ShowButton( 0, 50,'Trace')($utr,$uTrtr)[blue,hidden]; $HBTrTr HideButton( 65, 50,'Stop' )($utr,$uTrtr)[blue,hidden]; $ABTrSeg AnimateButton(0,100,'Animate on segment')($u,$Segm)(3)(0)(0)[red,hidden]; $ABTrCir AnimateButton(0,120,'Animate on circle') ($u,$AnC)(3)(0)(0)[red,hidden]; $SBSTTr ShowButton( 0, 80,'Animations')($AstS,$endS,$Segm,$ABTrSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABTrCir)[black,hidden]; $HBSTTr HideButton( 75, 80,'Hide' ) ($AstS,$endS,$Segm,$ABTrSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABTrCir)[black,hidden]; $SBTr ShowButton( 0, 0,'TRANSLATION by a')($uTr,$SuuTr,$SBTrS,$HBTrS,$SBTrTr,$HBTrTr,$SBSTTr,$HBSTTr)[blue,bold]; $HBTr HideButton(136, 0,'Hide')( $uTr,$SuuTr,$SOu,$SOuTr,$SuuTr,$utr,$uTrtr,$SBTrS,$HBTrS,$SBTrTr,$HBTrTr,$SBSTTr,$HBSTTr,$AstS,$endS,$Segm,$ABTrSeg,$AnC,$Ccentr,$PonCir,$QonCir,$SDiam,$ABTrCir)[blue,bold]; $v Point(150,100)[red, label('v'), hidden]; $SOv Segment($O,$v)[red, hidden]; $vTr VectorTranslation($v,$O,$a)[blue, label('T(v)'), hidden]; $SOvTr Segment($O,$vTr)[blue, hidden]; $SvvTr Segment($v,$vTr)[magenta, thick, hidden]; $uTrplusvTr VectorTranslation($vTr,$O,$uTr)[blue, label('T(u)+T(v)'), hidden]; $SOuTrplusvTr Segment($O,$uTrplusvTr)[blue, thick, hidden]; $SuTruTrplusvTr Segment($uTr,$uTrplusvTr)[blue, hidden]; $SvTruTrplusvTr Segment($vTr,$uTrplusvTr)[blue, hidden]; $uplusv VectorTranslation($u,$O,$v)[red, label('u+v'), hidden]; $SOuplusv Segment($O,$uplusv)[red, thick, hidden]; $uplusvTr VectorTranslation($uplusv,$O,$a)[blue, label('T(u+v)'), hidden]; $SuplusvuplusvTr Segment($uplusv,$uplusvTr)[magenta, thick, hidden]; $Suuplusv Segment($u,$uplusv)[red, hidden]; $Svuplusv Segment($v,$uplusv)[red, hidden]; $SOuplusvTr Segment($O,$uplusvTr)[blue, thick, hidden]; $SBuTrvTr ShowButton(200, 0,'Show T(u+v)')($u,$v,$SOu,$SOv,$uplusv,$Suuplusv,$Svuplusv,$uplusvTr,$SOuplusv,$uplusvTr,$SuplusvuplusvTr,$SOuplusvTr)[blue]; $HBuTrvTr HideButton(320, 0,'Hide')( $v,$SOu,$SOv,$uplusv,$Suuplusv,$Svuplusv,$uplusvTr,$SOuplusv,$uplusvTr,$SuplusvuplusvTr,$SOuplusvTr)[blue]; $SBuplusvTr ShowButton(200, 20,'Show T(u)+T(v)')($u,$v,$SOu,$SOv,$uTr,$vTr,$SOuTr,$SOvTr,$SuuTr,$SvvTr,$uTrplusvTr,$SOuTrplusvTr,$SuTruTrplusvTr,$SvTruTrplusvTr)[blue]; $HBuplusvTr HideButton(320, 20,'Hide')( $v,$SOu,$SOv,$uTr,$vTr,$SOuTr,$SOvTr,$SuuTr,$SvvTr,$uTrplusvTr,$SOuTrplusvTr,$SuTruTrplusvTr,$SvTruTrplusvTr)[blue]; $SBa ShowButton(300,357,'Change a')($a,$SOa)[magenta]; $HBa HideButton(362,357,'Fix a')( $a,$SOa)[magenta]; Point(390,10)[white, layer(5)]; Point(390,20)[yellow, layer(5)];

Email: Martti.Pesonen@Joensuu.Fi
Phone: Tel. +358 (0)13 251 3278