${
2. Neljän suoran leikkauspisteen sovitus
$}
#CODE = "GSP.class"
#CODEBASE = "../jsp"
#ARCHIVE = "jsp4.jar"
#WIDTH = 406
#HEIGHT = 420
#ALIGN = Center
*Frame = 1
*LabelFont = "Courier"
*LabelBold = 1
*MeasureFont = "Courier"
*MeasureSize = 14
*MeasureBold = 1
*MeasureInDegrees = 1
*DirectedAngles = 0
*Backblue = 255
*BackGreen = 230
*Backred = 255
$reset FixedText(385,15,'Reset = ''R''')[red,bold,justifyRight];
$Clear FixedText(370,412,'Puhdistus: x ->')[red,plain,font('Courier'),justifyRight];
$xText FixedText(385,195,'x1')[bold, black, justifyCenter];
$yText FixedText(192, 10,'x2')[bold, black, justifyCenter];
${
for scaling
$}
$RO FixedPoint(200,400)[black,label('0'),hidden];
$Ref Translation($RO,40,0)[hidden];
$Ray Ray($Ref,$RO)[black, hidden];
$Rykk Point on object($Ray,1)[white, label('1'), hidden];
$R1 FixedPoint(240,400)[white,label('1'),hidden];
$RL Line($Rykk,$RO)[black,hidden];
$Rpta Point on object($RL,1)[label('a'), red, layer(10), hidden];
$Ra Ratio/Points($RO,$Rykk,$Rpta,320,35,'a = ')[red];
$Rptb Point on object($RL,2)[label('b'), color(0,150,0), layer(15), hidden];
$Rb Ratio/Points($RO,$Rykk,$Rptb,320,55,'b = ')[color(0,150,0)];
$Rptc Point on object($RL,3)[label('c'), blue, layer(20), hidden];
$Rc Ratio/Points($RO,$Rykk,$Rptc,320,75,'c = ')[blue];
$Rptd Point on object($RL,4)[label('d'), color(128,128,128), layer(25), hidden];
$Rd Ratio/Points($RO,$Rykk,$Rptd,320,95,'d = ')[color(128,128,128)];
$LUpp FixedPoint(0,386)[hidden];
$LLow FixedPoint(0,420)[hidden];
$RLow FixedPoint(406,420)[hidden];
$RUpp FixedPoint(406,386)[hidden];
$ULine Line($LUpp,$RUpp)[black];
$RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[yellow,hidden];
$SBRL ShowButton( 0,365,'Scale eqs')($RO,$R1,$RL,$Rpta,$Rptb,$Rptc,$Rptd,$RectA)[black];
$HBRL HideButton(62,365,'Fix')( $RO,$R1,$RL,$Rpta,$Rptb,$Rptc,$Rptd,$RectA)[black];
${
The Plane Coordinate System
$}
$O FixedPoint(200, 200) [black, label('0')];
$unitp UnitPoint($O, 40) [white, label('1'), hidden];
$ykk FixedPoint(240,200)[white, label('1')];
$coord Origin&Unit($O, $unitp)[black];
$Xax AxisX($coord)[black];
$Yax AxisY($coord)[black];
$Sunit Segment($O,$unitp)[hidden];
$P1 Point(80,200)[red, label('P1')];
$Cir Circle by radius($P1,$Sunit)[red, hidden];
$P2 Point on object($Cir, 1)[red, label('P2')];
$LP1P2 Line($P1,$P2)[red,hidden];
$CoP1 Coordinates($P1,$coord,20,100,'P1 = ')[red,hidden];
$CoP2 Coordinates($P2,$coord,20, 60,'P2 = ')[red,hidden];
$a11pr Calculate( 0,35,'','#B2 #A2 -')($CoP1,$CoP2)[red,suffix('x'), hidden];
$a12pr Calculate( 57,35,'+(','#A1 #B1 -')($CoP1,$CoP2)[red,suffix(')y = '), hidden];
$b1pr Calculate(152,35,'','#B2 #A2- #A1* #B1 #A1- #A2* -')($CoP1,$CoP2)[red, hidden];
$a11 Calculate(0,35,'','AB*')($a11pr,$Ra)[red, suffix('x'), hidden];
$a12 Calculate(57,35,'+(','AB*')($a12pr,$Ra)[red, suffix(')y = '), hidden];
$b1 Calculate(152,35,'','AB*')($b1pr,$Ra)[red, hidden];
$Q1 Point(200,320)[color(0,150,0), label('Q1')];
$Cir Circle by radius($Q1,$Sunit)[color(0,150,0), hidden];
$Q2 Point on object($Cir, 3)[color(0,150,0), label('Q2')];
$LQ1Q2 Line($Q1,$Q2)[color(0,150,0),hidden];
$CoQ1 Coordinates($Q1,$coord,20,100,'Q1 = ')[color(0,150,0),hidden];
$CoQ2 Coordinates($Q2,$coord,20, 60,'Q2 = ')[color(0,150,0),hidden];
$a21pr Calculate( 0,55,'','#B2 #A2 -')($CoQ1,$CoQ2)[color(0,150,0),suffix('x'), hidden];
$a22pr Calculate( 57,55,'+(','#A1 #B1 -')($CoQ1,$CoQ2)[color(0,150,0),suffix(')y = '), hidden];
$b2pr Calculate(152,55,'','#B2 #A2- #A1* #B1 #A1- #A2* -')($CoQ1,$CoQ2)[color(0,150,0), hidden];
$a21 Calculate( 0,55,'','AB*')($a21pr,$Rb)[color(0,150,0), suffix('x'), hidden];
$a22 Calculate(57,55,'+(','AB*')($a22pr,$Rb)[color(0,150,0), suffix(')y = '), hidden];
$b2 Calculate(152,55,'','AB*')($b2pr,$Rb)[color(0,150,0), hidden];
$R1 Point(120,240)[blue, label('R1')];
$Cir Circle by radius($R1,$Sunit)[blue, hidden];
$R2 Point on object($Cir, 5)[blue, label('R2')];
$LR1R2 Line($R1,$R2)[blue,hidden];
$CoR1 Coordinates($R1,$coord,20,100,'R1 = ')[blue,hidden];
$CoR2 Coordinates($R2,$coord,20, 60,'R2 = ')[blue,hidden];
$a31pr Calculate( 0,75,'','#B2 #A2 -')($CoR1,$CoR2)[blue,suffix('x'), hidden];
$a32pr Calculate( 57,75,'+(','#A1 #B1 -')($CoR1,$CoR2)[blue,suffix(')y = '), hidden];
$b3pr Calculate(152,75,'','#B2 #A2- #A1* #B1 #A1- #A2* -')($CoR1,$CoR2)[blue, hidden];
$a31 Calculate( 0,75,'','AB*')($a31pr,$Rc)[blue, suffix('x'), hidden];
$a32 Calculate(57,75,'+(','AB*')($a32pr,$Rc)[blue, suffix(')y = '), hidden];
$b3 Calculate(152,75,'','AB*')($b3pr,$Rc)[blue, hidden];
$S1 Point(190,320)[color(128,128,128), label('S1')];
$Cir Circle by radius($S1,$Sunit)[color(128,128,128), hidden];
$S2 Point on object($Cir, 7)[color(128,128,128), label('S2')];
$LS1S2 Line($S1,$S2)[color(128,128,128),hidden];
$CoS1 Coordinates($S1,$coord,20,100,'S1 = ')[color(128,128,128),hidden];
$CoS2 Coordinates($S2,$coord,20,60,'S2 = ')[color(128,128,128),hidden];
$a41pr Calculate( 0,95,'','#B2 #A2 -')($CoS1,$CoS2)[color(128,128,128),suffix('x'), hidden];
$a42pr Calculate( 57,95,'+(','#A1 #B1 -')($CoS1,$CoS2)[color(128,128,128),suffix(')y = '), hidden];
$b4pr Calculate(152,95,'','#B2#A2- #A1* #B1#A1- #A2* -')($CoS1,$CoS2)[color(128,128,128), hidden];
$a41 Calculate( 0,95,'','AB*')($a41pr,$Rd)[color(128,128,128), suffix('x'), hidden];
$a42 Calculate(57,95,'+(','AB*')($a42pr,$Rd)[color(128,128,128), suffix(')y = '), hidden];
$b4 Calculate(152,95,'','AB*')($b4pr,$Rd)[color(128,128,128), hidden];
$A Calculate(205, 10,'A = ','A2^ B2^ + C2^ + D2^ +')($a11,$a21,$a31,$a41)[black,hidden];
$B Calculate(205, 25,'B = ','AE* BF* + CG* + DH* +')($a11,$a21,$a31,$a41,$a12,$a22,$a32,$a42)[black,hidden];
$C Calculate(205, 40,'C = ','A2^ B2^ + C2^ + D2^ +')($a12,$a22,$a32,$a42)[black,hidden];
$D Calculate(205, 55,'D = ','AE* BF* + CG* + DH* +')($a11,$a21,$a31,$a41,$b1,$b2,$b3,$b4)[black,hidden];
$E Calculate(205, 70,'E = ','AE* BF* + CG* + DH* +')($a12,$a22,$a32,$a42,$b1,$b2,$b3,$b4)[black,hidden];
$det Calculate(205, 85,'det = ','AC* BB* -')($A,$B,$C)[black,hidden];
$x1 Calculate(205,100,'x1 = ','AD* BC* - E /')($D,$B,$E,$C,$det)[black,hidden];
$x2 Calculate(205,115,'x2 = ','AD* BC* - E /')($A,$D,$B,$E,$det)[black,hidden];
$x PlotXY($x2,$coord,$x1)[magenta, label('x'), layer(10)];
$xtr PlotXY($x2,$coord,$x1)[magenta, label('x'),traced, hidden];
$Cx Coordinates($x,$coord,5,195,'x = ')[magenta,bold];
$SBxtr ShowButton( 0,160,'Trace x')($xtr)[blue];
$HBxtr HideButton(60,160,'Stop')($xtr)[blue];
$SBeq ShowButton(0,0,'Equations')($a11,$a12,$b1,$a21,$a22,$b2,$a31,$a32,$b3,$a41,$a42,$b4)[black,bold];
$HBeq HideButton(70,0,'Hide')($a11,$a12,$b1,$a21,$a22,$b2,$a31,$a32,$b3,$a41,$a42,$b4)[black,bold];
$YV FixedPoint(0,0)[hidden];
$YO FixedPoint(406,0)[hidden];
$AV FixedPoint(0,386)[hidden];
$AO FixedPoint(406,386)[hidden];
$LYVYO Segment($YV,$YO)[black,hidden];
$LAVAO Segment($AV,$AO)[black,hidden];
$LYVAV Segment($YV,$AV)[black,hidden];
$LYOAO Segment($YO,$AO)[black,hidden];
$IYLP1P2 Intersect($LYVYO,$LP1P2)[hidden];
$IALP1P2 Intersect($LAVAO,$LP1P2)[hidden];
$IVLP1P2 Intersect($LYVAV,$LP1P2)[hidden];
$IOLP1P2 Intersect($LYOAO,$LP1P2)[hidden];
Segment($IYLP1P2,$IALP1P2)[red];
Segment($IYLP1P2,$IVLP1P2)[red];
Segment($IYLP1P2,$IOLP1P2)[red];
Segment($IALP1P2,$IVLP1P2)[red];
Segment($IOLP1P2,$IVLP1P2)[red];
Segment($IALP1P2,$IOLP1P2)[red];
$IYLQ1Q2 Intersect($LYVYO,$LQ1Q2)[hidden];
$IALQ1Q2 Intersect($LAVAO,$LQ1Q2)[hidden];
$IVLQ1Q2 Intersect($LYVAV,$LQ1Q2)[hidden];
$IOLQ1Q2 Intersect($LYOAO,$LQ1Q2)[hidden];
Segment($IYLQ1Q2,$IALQ1Q2)[color(0,150,0)];
Segment($IYLQ1Q2,$IVLQ1Q2)[color(0,150,0)];
Segment($IYLQ1Q2,$IOLQ1Q2)[color(0,150,0)];
Segment($IALQ1Q2,$IVLQ1Q2)[color(0,150,0)];
Segment($IOLQ1Q2,$IVLQ1Q2)[color(0,150,0)];
Segment($IALQ1Q2,$IOLQ1Q2)[color(0,150,0)];
$IYLR1R2 Intersect($LYVYO,$LR1R2)[hidden];
$IALR1R2 Intersect($LAVAO,$LR1R2)[hidden];
$IVLR1R2 Intersect($LYVAV,$LR1R2)[hidden];
$IOLR1R2 Intersect($LYOAO,$LR1R2)[hidden];
Segment($IYLR1R2,$IALR1R2)[blue];
Segment($IYLR1R2,$IVLR1R2)[blue];
Segment($IYLR1R2,$IOLR1R2)[blue];
Segment($IALR1R2,$IVLR1R2)[blue];
Segment($IOLR1R2,$IVLR1R2)[blue];
Segment($IALR1R2,$IOLR1R2)[blue];
$IYLS1S2 Intersect($LYVYO,$LS1S2)[hidden];
$IALS1S2 Intersect($LAVAO,$LS1S2)[hidden];
$IVLS1S2 Intersect($LYVAV,$LS1S2)[hidden];
$IOLS1S2 Intersect($LYOAO,$LS1S2)[hidden];
Segment($IYLS1S2,$IALS1S2)[color(128,128,128)];
Segment($IYLS1S2,$IVLS1S2)[color(128,128,128)];
Segment($IYLS1S2,$IOLS1S2)[color(128,128,128)];
Segment($IALS1S2,$IVLS1S2)[color(128,128,128)];
Segment($IOLS1S2,$IVLS1S2)[color(128,128,128)];
Segment($IALS1S2,$IOLS1S2)[color(128,128,128)];
|
Voit tehdä suorille yhdensuuntaissiirtoja tarttumalla hiirellä pisteisiin
P1,
Q1,
R1 ja
S1.
Edelleen, suoria voit pyöritellä pisteiden
P2,
Q2,
R2 ja
S2
avulla.
|