[1] | 1 | if get('geometry2, 'version)=false then load(geometry2);
|
---|
| 2 | /* Points: A,B,C, X,Y,Z.
|
---|
| 3 | Cosines and sines of angles at A B and C are:
|
---|
| 4 | COSA, COSB, COSC, SINA, SINB, SINC
|
---|
| 5 | CXBC, CYAC, CYCA, CZAB, CZBA, CZBA.
|
---|
| 6 | Lengths:
|
---|
| 7 | XB, XC, YA, YC, ZA, ZB
|
---|
| 8 | AB, AC, BC,
|
---|
| 9 | XY, XZ, YZ
|
---|
| 10 | X,Y,Z are characterized by the conditions
|
---|
| 11 | that
|
---|
| 12 | angle XBC is 1/3 of ABC
|
---|
| 13 | angle XCB is 1/3 of ACB
|
---|
| 14 | angle YAC is 1/3 of BAC
|
---|
| 15 | angle YCA is 1/3 of BCA
|
---|
| 16 | angle ZAB is 1/3 of CAB
|
---|
| 17 | angle ZBA is 1/3 of CBA
|
---|
| 18 | Conclusion is that XYZ form an equilateral triangle
|
---|
| 19 | XY=XZ=YZ
|
---|
| 20 | */
|
---|
| 21 |
|
---|
| 22 | A:[0,0]; B:[1,0]; C:[u1,u2];
|
---|
| 23 | X:[x1,x2]; Y:[x3,x4]; Z:[x5,x6];
|
---|
| 24 |
|
---|
| 25 | vars:append(listofvars([X,Y,Z]),[XB,XC,YA,YC,ZA,ZB],
|
---|
| 26 | [AB,AC,BC], [XY,XZ,YZ],
|
---|
| 27 | [COSA, COSB, COSC, SINA, SINB, SINC],
|
---|
| 28 | [CXBC, CXCB, CYAC, CYCA, CZAB, CZBA],
|
---|
| 29 | [SXBC, SXCB, SYAC, SYCA, SZAB, SZBA],
|
---|
| 30 | [V]);
|
---|
| 31 |
|
---|
| 32 | params:listofvars([A,B,C]);
|
---|
| 33 | cover:[[],[u2]];
|
---|
| 34 |
|
---|
| 35 |
|
---|
| 36 | eqns:[
|
---|
| 37 | /* Angles: cosine law */
|
---|
| 38 | XB^2+BC^2-2*XB*BC*CXBC-XC^2,
|
---|
| 39 | XC^2+BC^2-2*XC*BC*CXCB-XB^2,
|
---|
| 40 | YA^2+AC^2-2*YA*AC*CYAC-YC^2,
|
---|
| 41 | YC^2+AC^2-2*YC*AC*CYCA-YA^2,
|
---|
| 42 | ZA^2+AB^2-2*ZA*AB*CZAB-ZB^2,
|
---|
| 43 | ZB^2+AB^2-2*ZB*AB*CZBA-ZA^2,
|
---|
| 44 | CXBC^2+SXBC^2-1,
|
---|
| 45 | CXCB^2+SXCB^2-1,
|
---|
| 46 | CYAC^2+SYAC^2-1,
|
---|
| 47 | CZAB^2+SZAB^2-1,
|
---|
| 48 | CZBA^2+SZBA^2-1,
|
---|
| 49 | /* Main angles: cosine law */
|
---|
| 50 | AB^2+AC^2-2*AB*AC*COSA-BC^2,
|
---|
| 51 | AB^2+BC^2-2*AB*BC*COSB-AC^2,
|
---|
| 52 | AC^2+BC^2-2*AC*BC*COSC-AB^2,
|
---|
| 53 | SINA^2+COSA^2-1,
|
---|
| 54 | SINB^2+COSB^2-1,
|
---|
| 55 | SINC^2+COSC^2-1,
|
---|
| 56 | /* Distances of X,Y,Z from vertices */
|
---|
| 57 | distance(X,B,XB),
|
---|
| 58 | distance(X,C,XC),
|
---|
| 59 | distance(Y,A,YA),
|
---|
| 60 | distance(Y,C,YC),
|
---|
| 61 | distance(Z,A,ZA),
|
---|
| 62 | distance(Z,B,ZB),
|
---|
| 63 | /* Lengths of sides of main triangle */
|
---|
| 64 | distance(A,B,AB),
|
---|
| 65 | distance(A,C,AC),
|
---|
| 66 | distance(B,C,BC),
|
---|
| 67 | /* Lengths of the trisector triangle */
|
---|
| 68 | distance(X,Y,XY),
|
---|
| 69 | distance(X,Z,XZ),
|
---|
| 70 | distance(Y,Z,YZ),
|
---|
| 71 | /* Trisector relations */
|
---|
| 72 | 4*CXBC^3-3*CXBC-COSB,
|
---|
| 73 | 4*CXCB^3-3*CXCB-COSC,
|
---|
| 74 | 4*CYAC^3-3*CYAC-COSA,
|
---|
| 75 | 4*CYCA^3-3*CYCA-COSC,
|
---|
| 76 | 4*CZAB^3-3*CZAB-COSA,
|
---|
| 77 | 4*CZBA^3-3*CZBA-COSB,
|
---|
| 78 | /* sine rules */
|
---|
| 79 | 4*CXBC^2*SXBC-3*SXBC-SINB,
|
---|
| 80 | 4*CXCB^2*SXCB-3*SXCB-SINC,
|
---|
| 81 | 4*CYAC^2*SXCB-3*SYAC-SINA,
|
---|
| 82 | 4*CYCA^2*SYCA-3*SYCA-SINC,
|
---|
| 83 | 4*CZAB^2*SZAB-3*SZAB-SINA,
|
---|
| 84 | 4*CZBA^2*SZBA-3*SZBA-SINB,
|
---|
| 85 | /* Conclusion: XY=XZ */
|
---|
| 86 | 1-v*(XY-XZ)
|
---|
| 87 | ];
|
---|
| 88 |
|
---|
| 89 | eqns:expand(eqns);
|
---|
| 90 | cover:expand(cover);
|
---|
| 91 | stringout("trisector.out",eqns,vars,params,cover);
|
---|