% This Filename: example-b.mp [MetaPost source] % Creation time: Fri Dec 16 19:30:09 2011 % % Copyright (C) 1997-2005, Fredrik Jonsson % % Input Filename [Stokes parameters]: example-b.dat % This MetaPost source code was automatically generated by poincare % Full set of command line options that generated this code: % --verbose --normalize --draw_hidden_dashed --inputfile example-b.dat --outputfile % example-b.mp --axislengths 0.3 1.7 0.3 2.4 % 0.3 1.5 --axislabels s_1(t) bot s_2(t) % bot s_3(t) rt --rotatephi 15.0 --rotatepsi % -60.0 --shading 0.75 0.99 --rhodivisor 50 % --phidivisor 80 --scalefactor 20.0 --paththickness 0.8 % --arrowthickness 0.4 % % Description: Map of Stokes parameters, visualized as trajectories % onto the Poincare sphere. This file contains MetaPost % source code, to be compiled with John Hobby's MetaPost % compiler or used with anything that understands MetaPost % source code. % % If you want to create PostScript output, or include the resulting % output in a TeX document, this example illustrates the procedure, % assuming 'poincaremap.mp' to be the name of the file containing the % MetaPost code to be visualized: (commands run on command-line) % % mp poincaremap.mp; % echo "\input epsf\centerline{\epsfbox{poincaremap.1}}\bye" > tmp.tex; % tex tmp.tex; % dvips tmp.dvi -o poincaremap.ps; % % Here, the first command compiles the MetaPost source code, and leaves % an Encapsulated PostScript file named 'poincaremap.1', containing TeX % control codes for characters, etc. This file does not contain any % definitions for characters or TeX-specific items, and it cannot be % viewed or printed simply as is stands; it must rather be included into % TeX code in order to provide something useful. % The second command creates a temporary minimal TeX-file 'tmp.tex', % that only includes the previously generated Encapsulated PostScript % code. % The third command compiles the TeX-code into device-independent, % or DVI, output, stored in the file 'tmp.dvi'. % Finally, the last command converts the DVI output into a free- % standing PostScript file 'poincaremap.ps', to be printed or viewed % with some PostScript viewer, such as GhostView. % scalefactor := 20.000000 mm; rot_psi := -60.000000; % Rotation angle round z-axis (first rotation) rot_phi := 15.000000; % Rotation angle round y-axis (second rotation) alpha := -24.146108; % == arctan(sin(rot_phi)*tan(rot_psi)) beta := -8.498781; % == arctan(sin(rot_phi)/tan(rot_psi)) % % Parameters specifying the location of the light source; for Phong % shading of the sphere. % % phi_source: Angle (in deg.) to light source counterclockwise % 'from three o'clock', viewed from the observer. % % theta_source: Angle (in deg.) between light source and observer, % seen from the centre of the sphere. % % Parameters specifying the shading 'intensity' in terms of maximum % (for the highlighs) and minimum (for the deep shadowed regions) % values for the Phong shading. '0.0' <=> 'black'; '1.0' <=> 'white' % % upper_value: Maximum value of whiteness. % lower_value: Minimum value of whiteness. % phi_source := 30.000000; theta_source := 30.000000; upper_value := 0.990000; lower_value := 0.750000; radius := scalefactor; delta_rho := radius/50.000000; delta_phi := 360.0/80.000000; beginfig(1); path p; path equator; transform T; c1:=lower_value; c2:=upper_value-lower_value; nx_source := sind(theta_source)*cosd(phi_source); ny_source := sind(theta_source)*sind(phi_source); nz_source := cosd(theta_source); phistop := 360.0; rhostop := radius - delta_rho/2.0; % % Draw the shaded Poincare sphere projected on 2D screen coordinates % for rho=0.0cm step delta_rho until rhostop: for phi=0.0 step delta_phi until phistop: rhomid := rho + delta_rho/2.0; phimid := phi + delta_phi/2.0; x1 := rho*cosd(phi); y1 := rho*sind(phi); x2 := (rho+delta_rho)*cosd(phi); y2 := (rho+delta_rho)*sind(phi); x3 := (rho+delta_rho)*cosd(phi+delta_phi); y3 := (rho+delta_rho)*sind(phi+delta_phi); x4 := rho*cosd(phi+delta_phi); y4 := rho*sind(phi+delta_phi); p:=makepath makepen ((x1,y1)--(x2,y2)--(x3,y3)--(x4,y4)--(x1,y1)); quot := (rhomid/radius); nx_object := quot*cosd(phimid); ny_object := quot*sind(phimid); nz_object := sqrt(1-quot*quot); prod:=nx_object*nx_source+ny_object*ny_source +nz_object*nz_source; if prod < 0.0: value := c1; else: value := c1 + c2*prod*prod; fi fill p withcolor value[black,white]; endfor endfor % % Draw the 'equators' of the Poincare sphere % equator := halfcircle scaled (2.0*radius); eqcolval := .45; % '0.0' <=> 'white'; '1.0' <=> 'black' pickup pencircle scaled 0.600000 pt; % % Draw equator $S_3=0$... % T := identity yscaled sind(rot_phi) rotated 180.0; draw equator transformed T withcolor eqcolval [white,black]; % % ... then equator $S_2=0$... % T := identity yscaled (cosd(rot_phi)*sind(rot_psi)) rotated (270.0 + alpha); draw equator transformed T withcolor eqcolval [white,black]; % % ... and finally equator $S_1=0$. % T := identity yscaled (cosd(rot_phi)*cosd(rot_psi)) rotated (270.0 - beta); draw equator transformed T withcolor eqcolval [white,black]; oldahangle:=ahangle; ahangle:=30.000000; pickup pencircle scaled 0.800000 pt; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.5455,0.8368)--(-0.5169,0.8491) --(-0.4808,0.8605)--(-0.4377,0.8708)--(-0.3879,0.8797) --(-0.3321,0.8872)--(-0.3654,0.8789)--(-0.4264,0.8639) --(-0.4827,0.8470)--(-0.5334,0.8283)--(-0.5779,0.8081) --(-0.6155,0.7864); draw p scaled radius dashed evenly withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.8359,0.5470)--(-0.8127,0.5657) --(-0.7786,0.5836)--(-0.7340,0.6005)--(-0.6793,0.6160) --(-0.6152,0.6297)--(-0.5426,0.6415)--(-0.4622,0.6510) --(-0.5061,0.6385)--(-0.5877,0.6168)--(-0.6621,0.5928) --(-0.7284,0.5666)--(-0.7856,0.5385)--(-0.8328,0.5087) --(-0.8694,0.4775)--(-0.8948,0.4453); draw p scaled radius dashed evenly withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.9823,0.1778)--(-0.9652,0.1999) --(-0.9354,0.2212)--(-0.8933,0.2415)--(-0.8394,0.2605) --(-0.7744,0.2777)--(-0.6992,0.2928)--(-0.6146,0.3055) --(-0.5219,0.3157)--(-0.5698,0.3009)--(-0.6596,0.2759) --(-0.7409,0.2485)--(-0.8125,0.2186)--(-0.8736,0.1869) --(-0.9233,0.1535)--(-0.9609,0.1187)--(-0.9860,0.0830) --(-0.9982,0.0468); draw p scaled radius dashed evenly withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.9740,-0.2212)--(-0.9671,-0.1992) --(-0.9475,-0.1777)--(-0.9156,-0.1568)--(-0.8719,-0.1372) --(-0.8170,-0.1192)--(-0.7516,-0.1029)--(-0.6766,-0.0887) --(-0.5932,-0.0769)--(-0.5022,-0.0678)--(-0.5468,-0.0826) --(-0.6311,-0.1070)--(-0.7068,-0.1338)--(-0.7729,-0.1626) --(-0.8286,-0.1932)--(-0.8732,-0.2251)--(-0.9062,-0.2581) --(-0.9271,-0.2919)--(-0.9359,-0.3260)--(-0.9324,-0.3601); draw p scaled radius dashed evenly withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.8111,-0.5826)--(-0.8132,-0.5642) --(-0.8046,-0.5459)--(-0.7856,-0.5280)--(-0.7565,-0.5111) --(-0.7178,-0.4952)--(-0.6703,-0.4806)--(-0.6144,-0.4678) --(-0.5511,-0.4567)--(-0.4813,-0.4477)--(-0.4061,-0.4409) --(-0.4405,-0.4534)--(-0.5064,-0.4736)--(-0.5651,-0.4956) --(-0.6156,-0.5191)--(-0.6575,-0.5437)--(-0.6902,-0.5694) --(-0.7135,-0.5957)--(-0.7271,-0.6224)--(-0.7311,-0.6492) --(-0.7254,-0.6757)--(-0.7103,-0.7018); draw p scaled radius dashed evenly withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.5130,-0.8577)--(-0.5253,-0.8456) --(-0.5306,-0.8334)--(-0.5286,-0.8213)--(-0.5196,-0.8095) --(-0.5041,-0.7981)--(-0.4822,-0.7875)--(-0.4545,-0.7778) --(-0.4215,-0.7690)--(-0.3836,-0.7615)--(-0.3417,-0.7551) --(-0.2963,-0.7503)--(-0.2481,-0.7468)--(-0.2671,-0.7552) --(-0.3048,-0.7682)--(-0.3374,-0.7820)--(-0.3646,-0.7965) --(-0.3862,-0.8116)--(-0.4021,-0.8270)--(-0.4121,-0.8426) --(-0.4164,-0.8581)--(-0.4150,-0.8735)--(-0.4080,-0.8885) --(-0.3958,-0.9030)--(-0.3787,-0.9168)--(-0.3571,-0.9298) --(-0.3314,-0.9419)--(-0.3021,-0.9530); draw p scaled radius dashed evenly withcolor black; pickup pencircle scaled 0.800000 pt; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.0193,-0.9998)--(-0.0468,-0.9988) --(-0.0721,-0.9970)--(-0.0950,-0.9944)--(-0.1151,-0.9913) --(-0.1324,-0.9877)--(-0.1467,-0.9837)--(-0.1579,-0.9794) --(-0.1661,-0.9749)--(-0.1711,-0.9703)--(-0.1733,-0.9658) --(-0.1726,-0.9614)--(-0.1692,-0.9572)--(-0.1635,-0.9533) --(-0.1556,-0.9498)--(-0.1458,-0.9467)--(-0.1345,-0.9440) --(-0.1219,-0.9419)--(-0.1085,-0.9403)--(-0.0944,-0.9392) --(-0.0802,-0.9387)--(-0.0661,-0.9386)--(-0.0523,-0.9391) --(-0.0530,-0.9421)--(-0.0567,-0.9458)--(-0.0583,-0.9494) --(-0.0581,-0.9527)--(-0.0563,-0.9559)--(-0.0528,-0.9587) --(-0.0480,-0.9612)--(-0.0423,-0.9633)--(-0.0356,-0.9649) --(-0.0285,-0.9660)--(-0.0211,-0.9667)--(-0.0136,-0.9669) --(-0.0065,-0.9666)--(-0.0000,-0.9659); draw p scaled radius dashed evenly withcolor black; pickup pencircle scaled 0.400000 pt; label.urt(btex LCP etex,(0.000000,0.965926)*radius); label.lrt(btex RCP etex,(-0.000000,-0.965926)*radius); ahangle:=oldahangle; oldahangle:=ahangle; ahangle:=30.000000; pickup pencircle scaled 0.800000 pt; pickup pencircle scaled 0.800000 pt; p := makepath makepen (0.0000,0.9659)--(-0.0057,0.9648) --(-0.0104,0.9633)--(-0.0139,0.9615)--(-0.0159,0.9594) --(-0.0163,0.9571)--(-0.0152,0.9547)--(-0.0122,0.9522) --(-0.0076,0.9497)--(-0.0013,0.9473)--(0.0068,0.9451) --(0.0163,0.9431)--(0.0272,0.9414)--(0.0393,0.9401) --(0.0475,0.9384)--(0.0397,0.9347)--(0.0300,0.9312) --(0.0184,0.9279)--(0.0049,0.9248)--(-0.0103,0.9222) --(-0.0269,0.9199)--(-0.0448,0.9182)--(-0.0637,0.9171) --(-0.0831,0.9165)--(-0.1028,0.9166)--(-0.1226,0.9173) --(-0.1418,0.9187)--(-0.1602,0.9208)--(-0.1774,0.9236) --(-0.1930,0.9269)--(-0.2066,0.9309)--(-0.2179,0.9354) --(-0.2265,0.9403)--(-0.2322,0.9455)--(-0.2346,0.9511) --(-0.2338,0.9568)--(-0.2292,0.9627)--(-0.2210,0.9684) --(-0.2090,0.9740)--(-0.1934,0.9793)--(-0.1742,0.9841) --(-0.1513,0.9884)--(-0.1691,0.9855)--(-0.2001,0.9794) --(-0.2296,0.9722)--(-0.2573,0.9639)--(-0.2824,0.9546) --(-0.3046,0.9445)--(-0.3233,0.9335)--(-0.3383,0.9217) --(-0.3491,0.9093)--(-0.3553,0.8964)--(-0.3569,0.8832) --(-0.3535,0.8697)--(-0.3450,0.8563)--(-0.3314,0.8429) --(-0.3127,0.8297)--(-0.2890,0.8170)--(-0.2606,0.8049) --(-0.2276,0.7935)--(-0.1904,0.7830)--(-0.1493,0.7736) --(-0.1049,0.7653)--(-0.0578,0.7583)--(-0.0084,0.7527) --(0.0426,0.7484)--(0.0944,0.7457)--(0.1464,0.7445) --(0.1979,0.7449)--(0.2247,0.7433)--(0.1781,0.7326) --(0.1279,0.7232)--(0.0746,0.7153)--(0.0189,0.7089) --(-0.0383,0.7041)--(-0.0966,0.7010)--(-0.1549,0.6996) --(-0.2125,0.7000)--(-0.2687,0.7021)--(-0.3225,0.7059) --(-0.3731,0.7114)--(-0.4198,0.7183)--(-0.4621,0.7266) --(-0.4988,0.7362)--(-0.5298,0.7469)--(-0.5543,0.7586) --(-0.5718,0.7711)--(-0.5820,0.7840)--(-0.5846,0.7974) --(-0.5794,0.8107)--(-0.5663,0.8240)--(-0.5455,0.8368); draw p scaled radius withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.6155,0.7864)--(-0.6455,0.7636) --(-0.6674,0.7398)--(-0.6806,0.7154)--(-0.6851,0.6904) --(-0.6805,0.6653)--(-0.6668,0.6402)--(-0.6441,0.6155) --(-0.6124,0.5915)--(-0.5721,0.5683)--(-0.5237,0.5464) --(-0.4676,0.5258)--(-0.4046,0.5069)--(-0.3354,0.4898) --(-0.2607,0.4748)--(-0.1817,0.4620)--(-0.0991,0.4515) --(-0.0142,0.4434)--(0.0719,0.4378)--(0.1581,0.4348) --(0.2433,0.4343)--(0.3263,0.4363)--(0.3678,0.4351) --(0.2894,0.4190)--(0.2063,0.4052)--(0.1195,0.3938) --(0.0301,0.3850)--(-0.0605,0.3789)--(-0.1515,0.3754) --(-0.2414,0.3746)--(-0.3291,0.3765)--(-0.4133,0.3809) --(-0.4929,0.3878)--(-0.5668,0.3970)--(-0.6340,0.4083) --(-0.6935,0.4217)--(-0.7444,0.4368)--(-0.7860,0.4532) --(-0.8176,0.4708)--(-0.8386,0.4894)--(-0.8488,0.5085) --(-0.8480,0.5278)--(-0.8359,0.5470); draw p scaled radius withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.8948,0.4453)--(-0.9086,0.4125) --(-0.9105,0.3793)--(-0.9005,0.3461)--(-0.8786,0.3132) --(-0.8450,0.2811)--(-0.8001,0.2501)--(-0.7444,0.2205) --(-0.6786,0.1926)--(-0.6035,0.1666)--(-0.5201,0.1430) --(-0.4293,0.1220)--(-0.3324,0.1037)--(-0.2308,0.0882) --(-0.1255,0.0759)--(-0.0180,0.0667)--(0.0902,0.0606) --(0.1977,0.0577)--(0.3032,0.0580)--(0.4051,0.0614) --(0.4549,0.0607)--(0.3566,0.0416)--(0.2533,0.0255) --(0.1462,0.0124)--(0.0367,0.0026)--(-0.0736,-0.0041) --(-0.1833,-0.0074)--(-0.2912,-0.0074)--(-0.3956,-0.0045) --(-0.4950,0.0017)--(-0.5884,0.0106)--(-0.6743,0.0223) --(-0.7517,0.0364)--(-0.8194,0.0527)--(-0.8766,0.0708) --(-0.9225,0.0906)--(-0.9564,0.1115)--(-0.9778,0.1332) --(-0.9865,0.1555)--(-0.9823,0.1778); draw p scaled radius withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.9982,0.0468)--(-0.9974,0.0104) --(-0.9835,-0.0259)--(-0.9567,-0.0615)--(-0.9174,-0.0962) --(-0.8660,-0.1294)--(-0.8034,-0.1610)--(-0.7302,-0.1906) --(-0.6475,-0.2178)--(-0.5564,-0.2426)--(-0.4579,-0.2644) --(-0.3536,-0.2832)--(-0.2447,-0.2989)--(-0.1327,-0.3113) --(-0.0190,-0.3203)--(0.0948,-0.3259)--(0.2072,-0.3282) --(0.3169,-0.3272)--(0.4222,-0.3229)--(0.4727,-0.3230) --(0.3695,-0.3422)--(0.2616,-0.3582)--(0.1506,-0.3709) --(0.0378,-0.3803)--(-0.0754,-0.3863)--(-0.1873,-0.3890) --(-0.2966,-0.3884)--(-0.4018,-0.3846)--(-0.5014,-0.3778) --(-0.5942,-0.3681)--(-0.6791,-0.3559)--(-0.7549,-0.3412) --(-0.8206,-0.3244)--(-0.8754,-0.3059)--(-0.9186,-0.2860) --(-0.9496,-0.2650)--(-0.9682,-0.2432)--(-0.9740,-0.2212); draw p scaled radius withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.9324,-0.3601)--(-0.9167,-0.3938) --(-0.8891,-0.4268)--(-0.8500,-0.4588)--(-0.8001,-0.4892) --(-0.7400,-0.5180)--(-0.6706,-0.5447)--(-0.5929,-0.5692) --(-0.5079,-0.5912)--(-0.4168,-0.6105)--(-0.3209,-0.6270) --(-0.2214,-0.6405)--(-0.1197,-0.6510)--(-0.0171,-0.6584) --(0.0850,-0.6628)--(0.1853,-0.6641)--(0.2824,-0.6624) --(0.3750,-0.6581)--(0.4185,-0.6575)--(0.3262,-0.6738) --(0.2303,-0.6872)--(0.1321,-0.6977)--(0.0330,-0.7052) --(-0.0657,-0.7098)--(-0.1627,-0.7115)--(-0.2569,-0.7102) --(-0.3468,-0.7063)--(-0.4315,-0.6998)--(-0.5096,-0.6909) --(-0.5806,-0.6798)--(-0.6432,-0.6668)--(-0.6968,-0.6521) --(-0.7409,-0.6360)--(-0.7748,-0.6189)--(-0.7983,-0.6010) --(-0.8111,-0.5826); draw p scaled radius withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.7103,-0.7018)--(-0.6861,-0.7272) --(-0.6533,-0.7515)--(-0.6124,-0.7745)--(-0.5641,-0.7960) --(-0.5089,-0.8159)--(-0.4480,-0.8339)--(-0.3821,-0.8499) --(-0.3122,-0.8637)--(-0.2394,-0.8753)--(-0.1644,-0.8846) --(-0.0884,-0.8916)--(-0.0125,-0.8963)--(0.0623,-0.8987) --(0.1350,-0.8989)--(0.2048,-0.8970)--(0.2708,-0.8930) --(0.3007,-0.8919)--(0.2332,-0.9029)--(0.1638,-0.9117) --(0.0935,-0.9183)--(0.0232,-0.9228)--(-0.0460,-0.9252) --(-0.1134,-0.9256)--(-0.1781,-0.9239)--(-0.2391,-0.9204) --(-0.2958,-0.9152)--(-0.3475,-0.9084)--(-0.3935,-0.9003) --(-0.4335,-0.8909)--(-0.4669,-0.8805)--(-0.4936,-0.8694) --(-0.5130,-0.8577); draw p scaled radius withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (-0.3021,-0.9530)--(-0.2698,-0.9629) --(-0.2350,-0.9717)--(-0.1982,-0.9792)--(-0.1602,-0.9854) --(-0.1213,-0.9904)--(-0.0823,-0.9941)--(-0.0438,-0.9965) --(-0.0062,-0.9978)--(0.0300,-0.9979)--(0.0642,-0.9969) --(0.0961,-0.9949)--(0.1252,-0.9921)--(0.1371,-0.9905); draw p scaled radius withcolor black; pickup pencircle scaled 0.800000 pt; p := makepath makepen (0.1371,-0.9905)--(0.1047,-0.9945) --(0.0724,-0.9974)--(0.0407,-0.9992)--(0.0099,-0.9999) --(-0.0193,-0.9998); draw p scaled radius withcolor black; pickup pencircle scaled 0.400000 pt; label.urt(btex LCP etex,(0.000000,0.965926)*radius); label.lrt(btex RCP etex,(-0.000000,-0.965926)*radius); ahangle:=oldahangle; % % Draw the $S_1$-, $S_2$- and $S_3$-axis of the Poincare sphere. % First of all, calculate the transformations of the intersections % for the unity sphere. % % Used variables: % % behind_distance : Specifies the relative distance of the coordi- % axes to be plotted behind origo (in negative di- % rection of respective axis. % % outside_distance_s1 : The relative distance from origo to the point % of the arrow head of the coordinate axis S1. % If this is set to 1.0, the arrow head will % point directly at the Poincare sphere. % % outside_distance_s2 : Same as above, except that this one controls % the S2 coordinate axis instead. % % outside_distance_s3 : Same as above, except that this one controls % the S3 coordinate axis instead. % % insidecolval : Specifies the shade of gray to use for the parts % of the coordinate axes that are inside the Poin- % care sphere. Values must be between 0 and 1, % where: '0.0' <=> 'white'; '1.0' <=> 'black' % behind_distance_s1 := -0.300000; behind_distance_s2 := -0.300000; behind_distance_s3 := -0.300000; outside_distance_s1 := 1.700000; outside_distance_s2 := 2.400000; outside_distance_s3 := 1.500000; insidecolval := .85; % '0.0' <=> 'white'; '1.0' <=> 'black' pickup pencircle scaled 0.600000 pt; % % Start with drawing the x-axis... % x_bis_start := radius*behind_distance_s1*cosd(rot_psi)*cosd(rot_phi); y_bis_start := radius*behind_distance_s1*sind(rot_psi); z_bis_start := -radius*behind_distance_s1*cosd(rot_psi)*sind(rot_phi); x_bis_intersect := radius*cosd(rot_psi)*cosd(rot_phi); y_bis_intersect := radius*sind(rot_psi); z_bis_intersect := -radius*cosd(rot_psi)*sind(rot_phi); p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (outside_distance_s1*y_bis_intersect, outside_distance_s1*z_bis_intersect); drawarrow p; label.bot(btex $s_1(t)$ etex, (outside_distance_s1*y_bis_intersect, outside_distance_s1*z_bis_intersect)); % % ... then draw the y-axis ... % x_bis_start := -radius*behind_distance_s2*sind(rot_psi)*cosd(rot_phi); y_bis_start := radius*behind_distance_s2*cosd(rot_psi); z_bis_start := radius*behind_distance_s2*sind(rot_psi)*sind(rot_phi); x_bis_intersect := -radius*sind(rot_psi)*cosd(rot_phi); y_bis_intersect := radius*cosd(rot_psi); z_bis_intersect := radius*sind(rot_psi)*sind(rot_phi); p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (outside_distance_s2*y_bis_intersect, outside_distance_s2*z_bis_intersect); drawarrow p; label.bot(btex $s_2(t)$ etex, (outside_distance_s2*y_bis_intersect, outside_distance_s2*z_bis_intersect)); % % ... then, finally, draw the z-axis. % x_bis_start := radius*behind_distance_s3*sind(rot_phi); y_bis_start := 0.0; z_bis_start := radius*behind_distance_s3*cosd(rot_phi); x_bis_intersect := radius*sind(rot_phi); y_bis_intersect := 0.0; z_bis_intersect := radius*cosd(rot_phi); p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (outside_distance_s3*y_bis_intersect, outside_distance_s3*z_bis_intersect); drawarrow p; label.rt(btex $s_3(t)$ etex, (outside_distance_s3*y_bis_intersect, outside_distance_s3*z_bis_intersect)); endfig; end