Lineaarialgebra
Lineaarialgebra: Siirretyt operaatiot tasossa
|
{ Lineaarialgebra: Siirretyt operaatiot tasossa }
#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,25,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];
$LUpp FixedPoint(0,480)[hidden];
$LLow FixedPoint(0,520)[hidden];
$RLow FixedPoint(500,520)[hidden];
$RUpp FixedPoint(500,480)[hidden];
$RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[yellow];
$O FixedPoint(250,250)[black,label('0')];
$unitp UnitPoint($O,50)[hidden];
$ykk FixedPoint(300,250)[white,label('1')];
$kakk VectorTranslation($ykk,$O,$ykk)[white, label('2')];
$coord Origin&Unit($O,$unitp)[black];
$hor AxisX($coord)[black];
$vert AxisY($coord)[hidden];
$start FixedPoint(250,480)[hidden];
$vertsh Ray($O,$start)[black];
{,arrowL}
$UC Circle($O,$ykk)[green,hidden];
$Vykk Intersect2($vert,$UC)[white,label('1')];
$Vkakk VectorTranslation($Vykk,$O,$Vykk)[white, label('2')];
$a FixedPoint(300,200)[white,label('a'),hidden];
$Sa Segment($O,$a)[color(200,200,0),hidden];
{ SUORA U: y = -x+2 }
$U Line($Vkakk,$kakk)[yellow];
$x Point(370,220)[red,label('x')];
$Sx Segment($O,$x)[red,thick];
{,arrowL}
$y Point(240,320)[blue,label('y')];
{,LabelAlign(0,-10)}
$Sy Segment($O,$y)[blue,thick];
{,arrowL}
$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')];
$Sxoy Segment($O,$xoy)[magenta,thick];
{,arrowL}
$Syxply Segment($y,$xply)[color(30,160,225),hidden];
$Sxxply Segment($x,$xply)[color(30,160,225),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];
$SBxoy ShowButton( 0, 40,'Show x o y')($x,$y,$xoy,$Sx,$Sy,$Sxoy)[magenta];
$HBxoy HideButton( 0,120,'Hide x o y')( $y,$xoy,$Sx,$Sy,$Sxoy)[magenta];
$SBSxyy ShowButton( 0,200,'Show segments')($x,$Sx,$y,$Sy,$xoy,$Sxoy)[magenta];
$HBSxyy HideButton( 0,180,'Hide segments')( $Sx, $Sy, $Sxoy)[magenta];
{ Circles of animation of x and y}
$Ccentery Point(325,175)[blue,hidden];
$CLrefy Translation($Ccentery,25,0)[black,hidden];
$CRayy Ray($CLrefy,$Ccentery)[black,hidden];
$Crady Point on object($CRayy,2)[blue,hidden];
$Cfreey Circle($Ccentery,$Crady)[blue,hidden];
$SCcenrady Segment($Ccentery,$Crady)[blue,hidden];
$Ccenterx Point(300,150)[red,hidden];
$CLrefx Translation($Ccenterx,25,0)[black,hidden];
$CRayx Ray($CLrefx,$Ccenterx)[black,hidden];
$Cradx Point on object($CRayx,2)[red,hidden];
$Cfreex Circle($Ccenterx,$Cradx)[red,hidden];
$SCcenradx Segment($Ccenterx,$Cradx)[red,hidden];
$SBAnCiry ShowButton(0, 80,'Show circle for y')($Ccentery,$Crady,$Cfreey,$SCcenrady)[blue,hidden];
$HBAnCiry HideButton(0, 80,'Hide circle for y')($Ccentery,$Crady,$Cfreey,$SCcenrady)[blue,hidden];
$SBAnCirx ShowButton(0, 60,'Show circle for x')($Ccenterx,$Cradx,$Cfreex,$SCcenradx)[red,hidden];
$HBAnCirx HideButton(0, 60,'Hide circle for x')($Ccenterx,$Cradx,$Cfreex,$SCcenradx)[red,hidden];
$ABMx AnimateButton( 0, 60,'Animate x on a circle')($x,$Cfreex)(5)(0)(1)[black,hidden];
$ABMy AnimateButton( 0, 80,'Animate y on a circle')($y,$Cfreey)(3)(0)(1)[black,hidden];
$SimSBAnCy SimultaneousButton(0, 80,'Animate y on a circle')($SBAnCiry,$ABMy)[blue];
$SimSBAnCx SimultaneousButton(0, 60,'Animate x on a circle')($SBAnCirx,$ABMx)[red];
$SimHBAnCy SimultaneousButton(130, 80,'Stop')($HBAnCiry,$ABMy)[blue];
$SimHBAnCx SimultaneousButton(130, 60,'Stop')($HBAnCirx,$ABMx)[red];
$Ua Point on object($U,-1)[color(12,171,3)];
$Ub Point on object($U, 1)[color(12,171,3)];
$SUaUb Segment($Ua,$Ub)[color(12,171,3)];
$ABxonU AnimateButton(0,100,'Animate x on U')($x,$SUaUb)(2)(0)(0)[black];
$anim1 Point on object($RL,-4)[cyan];
$anim2 Point on object($RL, 4)[cyan];
$Sanim Segment($anim1,$anim2)[cyan];
$ABc AnimateButton(250,60,'Animate scalar c')($Rnumc,$Sanim)(2)(0)(0)[black];
{ Scaling by c }
$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')];
$Scx Segment($O,$cx)[red];
{,arrowL}
$Sx2 Segment($O,$x)[red,thick];
$SBSc ShowButton(400,200,'Show segments')($x,$Sx2,$cx,$Scx)[red];
$HBSc HideButton(400,180,'Hide segments')( $Sx2, $Scx)[red];
$Scxcx_a Segment($cx,$cx_a)[color(30,160,225),hidden];
$Sacx Segment($a,$cx)[blue,hidden];
$SBcx ShowButton(250, 40,'Show c*x')($x,$cx,$Sx2,$Scx)[red];
$HBcx HideButton(250, 80,'Hide c*x')( $cx,$Sx2,$Scx)[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,$Sx2,$Sxoy,$Scx)[black];
$SBaxisa ShowButton( 0,270,'Show other axis system')($a,$Sa,$hora,$verta)[thick,color(12,171,3)];
$HBaxisa HideButton(150,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(150,290,'Hide')($a,$Say,$Syxoy,$Saxoy,$Sxxoy,$Say,$Sacx)[color(12,171,3)];
Oheisessa dynaamisessa kuviossa voi liikutella hiirellä pisteitä (vektoreita)
x ja y sekä skalaaria c. Myös animointinappulat saavat aikaan liikettä.
Martti Pesonen 2003, 2018
martti.pesonen(cattail)uef.fi