From: <and...@us...> - 2008-08-11 12:26:20
|
Revision: 8623 http://plplot.svn.sourceforge.net/plplot/?rev=8623&view=rev Author: andrewross Date: 2008-08-11 12:26:25 +0000 (Mon, 11 Aug 2008) Log Message: ----------- Update example 21 consistent with C version. Fix bug in ada versions of example 21. Results still differ from C version because plrandd has not yet been implemented in ada. Modified Paths: -------------- trunk/examples/ada/x21a.adb.cmake trunk/examples/ada/xthick21a.adb.cmake Modified: trunk/examples/ada/x21a.adb.cmake =================================================================== --- trunk/examples/ada/x21a.adb.cmake 2008-08-11 10:10:25 UTC (rev 8622) +++ trunk/examples/ada/x21a.adb.cmake 2008-08-11 12:26:25 UTC (rev 8623) @@ -20,13 +20,13 @@ -- along with PLplot; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --- Ada note: This example relies on a random number generator go make up some --- data so there is no possibility of getting exact agreement at the Postscript --- level with the C example as has been the standard in other examples. --- Therefore, a couple of shortcuts have been used such as not actually using --- the times reported by the calls to a clock which are then (in the C example) --- used to create some labels (the time differences are all 0 ms anyway). --- Also, there is some sort of edge effect anomlies in the Cubic Spline +-- Ada note: This example relies on a random number generator go make up some +-- data so there is no possibility of getting exact agreement at the Postscript +-- level with the C example as has been the standard in other examples. +-- Therefore, a couple of shortcuts have been used such as not actually using +-- the times reported by the calls to a clock which are then (in the C example) +-- used to create some labels (the time differences are all 0 ms anyway). +-- Also, there is some sort of edge effect anomlies in the Cubic Spline -- Approximation plots. with @@ -50,7 +50,7 @@ PLplot_Traditional, PLplot_Auxiliary; --- COMMENT THIS LINE IF YOUR COMPILER DOES NOT INCLUDE THESE +-- COMMENT THIS LINE IF YOUR COMPILER DOES NOT INCLUDE THESE -- DEFINITIONS, FOR EXAMPLE, IF IT IS NOT ADA 2005 WITH ANNEX G.3 COMPLIANCE. --with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays; @Ada_Is_2007_With_and_Use_Numerics@ @@ -61,7 +61,6 @@ yp : Integer := 20; nl : Integer := 15; knn_order : Integer := 20; - ct, ct1 : Integer; threshold : Long_Float := 1.001; wmin : Long_Float := -1.0e3; randn, rosen : Integer := 0; @@ -95,10 +94,10 @@ begin A_Boolean(1) := False; -- Don't reverse direction of control points - i(0) := 0.0; -- left boundary - i(1) := 1.0; -- right boundary + i(0) := 0.0; -- left boundary + i(1) := 1.0; -- right boundary - h(0) := 240.0; -- blue -> green -> yellow -> red + h(0) := 240.0; -- blue -> green -> yellow -> red l(0) := 0.6; l(1) := 0.6; @@ -132,7 +131,7 @@ if randn = 0 then x(i) := xt + xm; y(i) := yt + ym; - else -- std=1, meaning that many points are outside the plot range + else -- std=1, meaning that many points are outside the plot range x(i) := sqrt(-2.0 *log(xt)) * cos(2.0 * pi * yt) + xm; x(i) := sqrt(-2.0 *log(xt)) * sin(2.0 * pi * yt) + ym; end if; @@ -145,31 +144,11 @@ end loop; end create_data; - - -- Make a clock that returns milliseconds. Can't seem to use Ada.Calendar - -- because the Time type is private and in nanoseconds, and I can't see a - -- way to divide by 1000000. This uses a GNAT package which is not part of - -- standard Ada, GNAT.Calendar.Time_IO, in the function Image. - -- %i is said to be a GNAT extension to the GNU Date specificacion, - -- returning time in milliseconds during the current minute. Therefore, - -- this kludge returns time in milliseconds modulo minutes; subtracting one - -- Clock call from another might yield surprising results. Clock _is_ the - -- standard function in Ada.Calendar, so there _is_ a way to do this without - -- using the GNAT extension. - -- Final note: This clock is never actually put to use here in order to speed - -- conversion of this example from C. The time values all returned 0 ms - -- so I just hard-coded the labels that used the clock values to 0. - function Millisecond_Clock return Integer is - begin - return Integer'value(GNAT.Calendar.Time_IO.Image(Clock, "%i")); - end Millisecond_Clock; - - - -- Ada lacks full access to IEEE 754 aka IEC 559. The following works + -- Ada lacks full access to IEEE 754 aka IEC 559. The following works -- because a NaN is not equal to any other float, including itself. - -- Use of the 'valid attribute might also work, as might casting to a 64-bit - -- Integer and comparing to the known bit pattern for NaN; but beware of - -- quiet NaNs and signalling NaNs. See the discussion at + -- Use of the 'valid attribute might also work, as might casting to a 64-bit + -- Integer and comparing to the known bit pattern for NaN; but beware of + -- quiet NaNs and signalling NaNs. See the discussion at -- http://groups.google.com/group/comp.lang.ada/browse_thread/thread/772ddcb41cd06d5b?hl=en function Is_NaN(x : Long_Float) return Boolean is begin @@ -179,20 +158,20 @@ begin xm := -0.2; ym := -0.2; - xMM := 0.8; - yMM := 0.8; + xMM := 0.6; + yMM := 0.6; opt(2) := wmin; opt(3) := Long_Float(knn_order); opt(4) := threshold; - -- Parse and process command line arguments + -- Parse and process command line arguments plparseopts(PL_PARSE_FULL); - -- Initialize plplot + -- Initialize plplot plinit; - create_data(x, y, z); -- the sampled data + create_data(x, y, z); -- the sampled data zmin := Vector_Min(z); zmax := Vector_Max(z); @@ -201,8 +180,7 @@ plcol0(1); plenv(xm, xMM, ym, yMM, 2, 0); plcol0(15); - pllab("Npts=" & Trim(Integer'image(pts), Left) & " gridx=" & Trim(Integer'image(xp), Left) & " gridy=" & Trim(Integer'image(yp), Left), - "", "The original data"); + pllab("X", "Y", "The original data sampling"); plcol0(2); plpoin(x, y, 5); pladv(0); @@ -213,9 +191,7 @@ pladv(0); for alg in 1 .. 6 loop - ct := Millisecond_Clock; plgriddata(x, y, z, xg, yg, zg, alg, opt(alg - 1)); - ct1 := Millisecond_Clock - ct; -- Not used; see notes above. -- CSA can generate NaNs (only interpolates?!). -- DTLI and NNI can generate NaNs for points outside the convex hull @@ -227,7 +203,7 @@ if alg = GRID_CSA or alg = GRID_DTLI or alg = GRID_NNLI or alg = GRID_NNI then for i in xg'range loop for j in yg'range loop - if Is_NaN(zg(i, j)) then -- average (IDW) over the 8 neighbors + if Is_NaN(zg(i, j)) then -- average (IDW) over the 8 neighbors zg(i, j) := 0.0; dist := 0.0; @@ -248,9 +224,9 @@ end if; end loop; -- jj end loop; -- ii - + if dist /= 0.0 then - zg(i, j) := dist; + zg(i, j) := zg(i,j) / dist; else zg(i, j) := zmin; end if; @@ -262,7 +238,7 @@ lzm := Matrix_Min(zg); lzMM := Matrix_Max(zg); - + plcol0(1); pladv(alg); @@ -275,7 +251,7 @@ plenv0(xm, xMM, ym, yMM, 2, 0); plcol0(15); - pllab("time=0 ms", "opt=0.000", title(alg - 1)); + pllab("X", "Y", title(alg - 1)); plshades(zg, null, xm, xMM, ym, yMM, clev, 1, 0, 1, plfill'access, True, null, System.Null_Address); plcol0(2); @@ -286,15 +262,15 @@ cmap1_init; plvpor(0.0, 1.0, 0.0, 0.9); - plwind(-1.0, 1.0, -1.0, 1.5); - + plwind(-1.1, 0.75, -0.65, 1.20); + -- For the comparition to be fair, all plots should have the -- same z values, but to get the max/min of the data generated -- by all algorithms would imply two passes. Keep it simple. - plw3d(1.0, 1.0, 1.0, xm, xMM, ym, yMM, lzm, lzMM, 30.0, -60.0); - plbox3("bnstu", "opt=0.000", 0.0, 0, - "bnstu", "time=0 ms", 0.0, 0, - "bcdmnstuv", "", 0.0, 4); + plw3d(1.0, 1.0, 1.0, xm, xMM, ym, yMM, lzm, lzMM, 30.0, -40.0); + plbox3("bntu", "X", 0.0, 0, + "bntu", "Y", 0.0, 0, + "bcdfntu", "Z", 0.5, 0); plcol0(15); pllab("", "", title(alg - 1)); plot3dc(xg, yg, zg, DRAW_LINEXY + MAG_COLOR + BASE_CONT, clev); Modified: trunk/examples/ada/xthick21a.adb.cmake =================================================================== --- trunk/examples/ada/xthick21a.adb.cmake 2008-08-11 10:10:25 UTC (rev 8622) +++ trunk/examples/ada/xthick21a.adb.cmake 2008-08-11 12:26:25 UTC (rev 8623) @@ -20,13 +20,13 @@ -- along with PLplot; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --- Ada note: This example relies on a random number generator go make up some --- data so there is no possibility of getting exact agreement at the Postscript --- level with the C example as has been the standard in other examples. --- Therefore, a couple of shortcuts have been used such as not actually using --- the times reported by the calls to a clock which are then (in the C example) --- used to create some labels (the time differences are all 0 ms anyway). --- Also, there is some sort of edge effect anomlies in the Cubic Spline +-- Ada note: This example relies on a random number generator go make up some +-- data so there is no possibility of getting exact agreement at the Postscript +-- level with the C example as has been the standard in other examples. +-- Therefore, a couple of shortcuts have been used such as not actually using +-- the times reported by the calls to a clock which are then (in the C example) +-- used to create some labels (the time differences are all 0 ms anyway). +-- Also, there is some sort of edge effect anomlies in the Cubic Spline -- Approximation plots. with @@ -50,7 +50,7 @@ PLplot, PLplot_Auxiliary; --- COMMENT THIS LINE IF YOUR COMPILER DOES NOT INCLUDE THESE +-- COMMENT THIS LINE IF YOUR COMPILER DOES NOT INCLUDE THESE -- DEFINITIONS, FOR EXAMPLE, IF IT IS NOT ADA 2005 WITH ANNEX G.3 COMPLIANCE. --with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays; @Ada_Is_2007_With_and_Use_Numerics@ @@ -61,7 +61,6 @@ yp : Integer := 20; nl : Integer := 15; knn_order : Integer := 20; - ct, ct1 : Integer; threshold : Long_Float := 1.001; wmin : Long_Float := -1.0e3; randn, rosen : Integer := 0; @@ -95,10 +94,10 @@ begin A_Boolean(1) := False; -- Don't reverse direction of control points - i(0) := 0.0; -- left boundary - i(1) := 1.0; -- right boundary + i(0) := 0.0; -- left boundary + i(1) := 1.0; -- right boundary - h(0) := 240.0; -- blue -> green -> yellow -> red + h(0) := 240.0; -- blue -> green -> yellow -> red l(0) := 0.6; l(1) := 0.6; @@ -132,7 +131,7 @@ if randn = 0 then x(i) := xt + xm; y(i) := yt + ym; - else -- std=1, meaning that many points are outside the plot range + else -- std=1, meaning that many points are outside the plot range x(i) := sqrt(-2.0 *log(xt)) * cos(2.0 * pi * yt) + xm; x(i) := sqrt(-2.0 *log(xt)) * sin(2.0 * pi * yt) + ym; end if; @@ -146,30 +145,11 @@ end create_data; - -- Make a clock that returns milliseconds. Can't seem to use Ada.Calendar - -- because the Time type is private and in nanoseconds, and I can't see a - -- way to divide by 1000000. This uses a GNAT package which is not part of - -- standard Ada, GNAT.Calendar.Time_IO, in the function Image. - -- %i is said to be a GNAT extension to the GNU Date specificacion, - -- returning time in milliseconds during the current minute. Therefore, - -- this kludge returns time in milliseconds modulo minutes; subtracting one - -- Clock call from another might yield surprising results. Clock _is_ the - -- standard function in Ada.Calendar, so there _is_ a way to do this without - -- using the GNAT extension. - -- Final note: This clock is never actually put to use here in order to speed - -- conversion of this example from C. The time values all returned 0 ms - -- so I just hard-coded the labels that used the clock values to 0. - function Millisecond_Clock return Integer is - begin - return Integer'value(GNAT.Calendar.Time_IO.Image(Clock, "%i")); - end Millisecond_Clock; - - - -- Ada lacks full access to IEEE 754 aka IEC 559. The following works + -- Ada lacks full access to IEEE 754 aka IEC 559. The following works -- because a NaN is not equal to any other float, including itself. - -- Use of the 'valid attribute might also work, as might casting to a 64-bit - -- Integer and comparing to the known bit pattern for NaN; but beware of - -- quiet NaNs and signalling NaNs. See the discussion at + -- Use of the 'valid attribute might also work, as might casting to a 64-bit + -- Integer and comparing to the known bit pattern for NaN; but beware of + -- quiet NaNs and signalling NaNs. See the discussion at -- http://groups.google.com/group/comp.lang.ada/browse_thread/thread/772ddcb41cd06d5b?hl=en function Is_NaN(x : Long_Float) return Boolean is begin @@ -179,8 +159,8 @@ begin xm := -0.2; ym := -0.2; - xMM := 0.8; - yMM := 0.8; + xMM := 0.6; + yMM := 0.6; opt(2) := wmin; opt(3) := Long_Float(knn_order); @@ -188,11 +168,11 @@ -- Parse and process command line arguments Parse_Command_Line_Arguments(Parse_Full); - - -- Initialize plplot + + -- Initialize plplot Initialize_PLplot; - create_data(x, y, z); -- the sampled data + create_data(x, y, z); -- the sampled data zmin := Vector_Min(z); zmax := Vector_Max(z); @@ -201,8 +181,7 @@ Set_Pen_Color(Red); Set_Environment(xm, xMM, ym, yMM, Justified_Square_Box, Linear_Box_Plus); Set_Pen_Color(White); - Write_Labels("Npts=" & Trim(Integer'image(pts), Left) & " gridx=" & Trim(Integer'image(xp), Left) & " gridy=" & Trim(Integer'image(yp), Left), - "", "The original data"); + Write_Labels("X", "Y", "The original data sampling"); Set_Pen_Color(Yellow); Draw_Points(x, y, 5); Advance_To_Subpage(Next_Subpage); @@ -213,9 +192,7 @@ Advance_To_Subpage(Next_Subpage); for alg in 1 .. 6 loop - ct := Millisecond_Clock; Grid_Data(x, y, z, xg, yg, zg, alg, opt(alg - 1)); - ct1 := Millisecond_Clock - ct; -- Not used; see notes above. -- CSA can generate NaNs (only interpolates?!). -- DTLI and NNI can generate NaNs for points outside the convex hull @@ -227,7 +204,7 @@ if alg = GRID_CSA or alg = GRID_DTLI or alg = GRID_NNLI or alg = GRID_NNI then for i in xg'range loop for j in yg'range loop - if Is_NaN(zg(i, j)) then -- average (IDW) over the 8 neighbors + if Is_NaN(zg(i, j)) then -- average (IDW) over the 8 neighbors zg(i, j) := 0.0; dist := 0.0; @@ -248,9 +225,9 @@ end if; end loop; -- jj end loop; -- ii - + if dist /= 0.0 then - zg(i, j) := dist; + zg(i, j) := zg(i,j) / dist; else zg(i, j) := zmin; end if; @@ -262,7 +239,7 @@ lzm := Matrix_Min(zg); lzMM := Matrix_Max(zg); - + Set_Pen_Color(Red); Advance_To_Subpage(alg); @@ -275,7 +252,7 @@ Set_Environment_Clear_Subpage(xm, xMM, ym, yMM, Justified_Square_Box, Linear_Box_Plus); Set_Pen_Color(White); - Write_Labels("time=0 ms", "opt=0.000", title(alg - 1)); + Write_Labels("X", "Y", title(alg - 1)); Shade_Regions(zg, null, xm, xMM, ym, yMM, clev, 1, 0, 1, Fill_Polygon'access, True, null, System.Null_Address); Set_Pen_Color(Yellow); @@ -286,15 +263,15 @@ cmap1_init; Set_Viewport_Normalized(0.0, 1.0, 0.0, 0.9); - Set_Viewport_World(-1.0, 1.0, -1.0, 1.5); - + Set_Viewport_World(-1.1, 0.75, -0.65, 1.20); + -- For the comparition to be fair, all plots should have the -- same z values, but to get the max/min of the data generated -- by all algorithms would imply two passes. Keep it simple. - Set_Up_3D(1.0, 1.0, 1.0, xm, xMM, ym, yMM, lzm, lzMM, 30.0, -60.0); - Box_Around_Viewport_3D("bnstu", "opt=0.000", 0.0, 0, - "bnstu", "time=0 ms", 0.0, 0, - "bcdmnstuv", "", 0.0, 4); + Set_Up_3D(1.0, 1.0, 1.0, xm, xMM, ym, yMM, lzm, lzMM, 30.0, -40.0); + Box_Around_Viewport_3D("bntu", "X", 0.0, 0, + "bntu", "Y", 0.0, 0, + "bcdfntu", "Z", 0.5, 0); Set_Pen_Color(White); Write_Labels("", "", title(alg - 1)); Plot_3D_Base_Contour(xg, yg, zg, DRAW_LINEXY + MAG_COLOR + BASE_CONT, clev); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-08-14 22:06:12
|
Revision: 8656 http://plplot.svn.sourceforge.net/plplot/?rev=8656&view=rev Author: jbauck Date: 2008-08-14 22:06:23 +0000 (Thu, 14 Aug 2008) Log Message: ----------- Minor tweaks to Ada examples 9. Modified Paths: -------------- trunk/examples/ada/x09a.adb.cmake trunk/examples/ada/xthick09a.adb.cmake Modified: trunk/examples/ada/x09a.adb.cmake =================================================================== --- trunk/examples/ada/x09a.adb.cmake 2008-08-14 19:27:25 UTC (rev 8655) +++ trunk/examples/ada/x09a.adb.cmake 2008-08-14 22:06:23 UTC (rev 8656) @@ -108,7 +108,7 @@ begin -- mypltr tx := tr(0) * x + tr(1) * y + tr(2); ty := tr(3) * x + tr(4) * y + tr(5); - end; -- mypltr + end mypltr; -- Polar contour plot example @@ -152,7 +152,7 @@ plcont(z, 1, RPTS, 1, THETAPTS, lev, pltr2'access, cgrid2'Address); plcol0(1); pllab("", "", "Polar Contour Plot"); - end; -- polar + end polar; -- Shielded potential contour plot example @@ -283,7 +283,7 @@ plcol0(ncollab); pllab("", "", "Shielded potential of charges in a conducting sphere"); - end; -- potential + end potential; begin -- main Modified: trunk/examples/ada/xthick09a.adb.cmake =================================================================== --- trunk/examples/ada/xthick09a.adb.cmake 2008-08-14 19:27:25 UTC (rev 8655) +++ trunk/examples/ada/xthick09a.adb.cmake 2008-08-14 22:06:23 UTC (rev 8656) @@ -108,7 +108,7 @@ begin -- mypltr tx := tr(0) * x + tr(1) * y + tr(2); ty := tr(3) * x + tr(4) * y + tr(5); - end; -- mypltr + end mypltr; -- Polar contour plot example @@ -152,7 +152,7 @@ Contour_Plot(z, 1, RPTS, 1, THETAPTS, lev, Plot_Transformation_2'access, cgrid2'Address); Set_Pen_Color(Red); Write_Labels("", "", "Polar Contour Plot"); - end; -- polar + end polar; -- Shielded potential contour plot example @@ -283,7 +283,7 @@ Set_Pen_Color(ncollab); Write_Labels("", "", "Shielded potential of charges in a conducting sphere"); - end; -- potential + end potential; begin -- main This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-08-15 02:58:09
|
Revision: 8662 http://plplot.svn.sourceforge.net/plplot/?rev=8662&view=rev Author: jbauck Date: 2008-08-15 02:58:19 +0000 (Fri, 15 Aug 2008) Log Message: ----------- Fix bug in xthick21a.adb so now it is like x21a.adb. In both, trivially improve the expression of a couple of loop iterates. Modified Paths: -------------- trunk/examples/ada/x21a.adb.cmake trunk/examples/ada/xthick21a.adb.cmake Modified: trunk/examples/ada/x21a.adb.cmake =================================================================== --- trunk/examples/ada/x21a.adb.cmake 2008-08-15 01:37:47 UTC (rev 8661) +++ trunk/examples/ada/x21a.adb.cmake 2008-08-15 02:58:19 UTC (rev 8662) @@ -249,7 +249,7 @@ pladv(alg); if k = 0 then - for i in 0 .. nl - 1 loop + for i in clev'range loop clev(i) := lzm + (lzMM - lzm) / Long_Float(nl-1) * Long_Float(i); end loop; @@ -260,7 +260,7 @@ clev, 1, 0, 1, plfill'access, True, null, System.Null_Address); plcol0(2); else - for i in 0 .. nl - 1 loop + for i in clev'range loop clev(i) := lzm + (lzMM - lzm) / Long_Float(nl - 1) * Long_Float(i); end loop; Modified: trunk/examples/ada/xthick21a.adb.cmake =================================================================== --- trunk/examples/ada/xthick21a.adb.cmake 2008-08-15 01:37:47 UTC (rev 8661) +++ trunk/examples/ada/xthick21a.adb.cmake 2008-08-15 02:58:19 UTC (rev 8662) @@ -59,7 +59,7 @@ pts : Integer := 500; xp : Integer := 25; yp : Integer := 20; - nl : Integer := 15; + nl : Integer := 16; knn_order : Integer := 20; threshold : Long_Float := 1.001; wmin : Long_Float := -1.0e3; @@ -246,7 +246,7 @@ if k = 0 then lzm := Vector_Min((lzm, zmin)); lzMM := Vector_Max((lzMM, zmax)); - for i in 0 .. nl - 1 loop + for i in clev'range loop clev(i) := lzm + (lzMM - lzm) / Long_Float(nl-1) * Long_Float(i); end loop; @@ -257,7 +257,7 @@ clev, 1, 0, 1, Fill_Polygon'access, True, null, System.Null_Address); Set_Pen_Color(Yellow); else - for i in 0 .. nl - 1 loop + for i in clev'range loop clev(i) := lzm + (lzMM - lzm) / Long_Float(nl - 1) * Long_Float(i); end loop; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-08-17 00:25:31
|
Revision: 8668 http://plplot.svn.sourceforge.net/plplot/?rev=8668&view=rev Author: jbauck Date: 2008-08-17 00:25:41 +0000 (Sun, 17 Aug 2008) Log Message: ----------- Repair Ada examples x29a.adb and xthick29a.adb to once again make Postscript identical to C example. Modified Paths: -------------- trunk/examples/ada/x29a.adb.cmake trunk/examples/ada/xthick29a.adb.cmake Modified: trunk/examples/ada/x29a.adb.cmake =================================================================== --- trunk/examples/ada/x29a.adb.cmake 2008-08-16 23:48:18 UTC (rev 8667) +++ trunk/examples/ada/x29a.adb.cmake 2008-08-17 00:25:41 UTC (rev 8668) @@ -134,7 +134,8 @@ begin -- Find the number of seconds since January 1, 1970 to December 1, 2005. -- Should be 1_133_395_200.0. - xmin := Long_Float(Time_Of(2005, 12, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); + -- NOTE: The beginning time is now set to Jan 01, 1970 to match C output. + xmin := Long_Float(Time_Of(1970, 1, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); xmax := xmin + Long_Float(x'length) * 60.0 * 60.0 * 24.0; ymin := 0.0; Modified: trunk/examples/ada/xthick29a.adb.cmake =================================================================== --- trunk/examples/ada/xthick29a.adb.cmake 2008-08-16 23:48:18 UTC (rev 8667) +++ trunk/examples/ada/xthick29a.adb.cmake 2008-08-17 00:25:41 UTC (rev 8668) @@ -121,7 +121,8 @@ begin -- Find the number of seconds since January 1, 1970 to December 1, 2005. -- Should be 1_133_395_200.0. - xmin := Long_Float(Time_Of(2005, 12, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); + -- NOTE: The beginning time is now set to Jan 01, 1970 to match C output. + xmin := Long_Float(Time_Of(1970, 1, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); xmax := xmin + Long_Float(x'length) * 60.0 * 60.0 * 24.0; ymin := 0.0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-08-23 05:09:13
|
Revision: 8703 http://plplot.svn.sourceforge.net/plplot/?rev=8703&view=rev Author: jbauck Date: 2008-08-23 05:09:22 +0000 (Sat, 23 Aug 2008) Log Message: ----------- Changed the initial time in Ada examples x29a.adb and xthick29a.adb. They should now once again agree with the C example at the Postscript level, although I can't test this as x29c.c generates dates from 1970 instead of 2005 on my machine which runs OS X. Modified Paths: -------------- trunk/examples/ada/x29a.adb.cmake trunk/examples/ada/xthick29a.adb.cmake Modified: trunk/examples/ada/x29a.adb.cmake =================================================================== --- trunk/examples/ada/x29a.adb.cmake 2008-08-23 04:30:07 UTC (rev 8702) +++ trunk/examples/ada/x29a.adb.cmake 2008-08-23 05:09:22 UTC (rev 8703) @@ -134,8 +134,7 @@ begin -- Find the number of seconds since January 1, 1970 to December 1, 2005. -- Should be 1_133_395_200.0. - -- NOTE: The beginning time is now set to Jan 01, 1970 to match C output. - xmin := Long_Float(Time_Of(1970, 1, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); + xmin := Long_Float(Time_Of(2005, 12, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); xmax := xmin + Long_Float(x'length) * 60.0 * 60.0 * 24.0; ymin := 0.0; Modified: trunk/examples/ada/xthick29a.adb.cmake =================================================================== --- trunk/examples/ada/xthick29a.adb.cmake 2008-08-23 04:30:07 UTC (rev 8702) +++ trunk/examples/ada/xthick29a.adb.cmake 2008-08-23 05:09:22 UTC (rev 8703) @@ -121,8 +121,7 @@ begin -- Find the number of seconds since January 1, 1970 to December 1, 2005. -- Should be 1_133_395_200.0. - -- NOTE: The beginning time is now set to Jan 01, 1970 to match C output. - xmin := Long_Float(Time_Of(1970, 1, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); + xmin := Long_Float(Time_Of(2005, 12, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); xmax := xmin + Long_Float(x'length) * 60.0 * 60.0 * 24.0; ymin := 0.0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-08-26 09:02:33
|
Revision: 8713 http://plplot.svn.sourceforge.net/plplot/?rev=8713&view=rev Author: andrewross Date: 2008-08-26 09:02:42 +0000 (Tue, 26 Aug 2008) Log Message: ----------- Ada version of example 29 does not work reliably for all timezones for the same reason that the old C version did not. Some regions (e.g. UK) were in daylight saving on January 1 1970 and so the offset is wrong. For now just hard-code in the correct value until Jerry can work out how to get UTC time in Ada. Modified Paths: -------------- trunk/examples/ada/x29a.adb.cmake trunk/examples/ada/xthick29a.adb.cmake Modified: trunk/examples/ada/x29a.adb.cmake =================================================================== --- trunk/examples/ada/x29a.adb.cmake 2008-08-26 02:37:51 UTC (rev 8712) +++ trunk/examples/ada/x29a.adb.cmake 2008-08-26 09:02:42 UTC (rev 8713) @@ -134,7 +134,11 @@ begin -- Find the number of seconds since January 1, 1970 to December 1, 2005. -- Should be 1_133_395_200.0. - xmin := Long_Float(Time_Of(2005, 12, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); + -- This method does not work reliably for timezones which were + -- on daylight saving time on Janary 1 1970, e.g. the UK. + -- xmin := Long_Float(Time_Of(2005, 12, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); + -- For now we will just hard code it + xmin := 1133395200.0; xmax := xmin + Long_Float(x'length) * 60.0 * 60.0 * 24.0; ymin := 0.0; Modified: trunk/examples/ada/xthick29a.adb.cmake =================================================================== --- trunk/examples/ada/xthick29a.adb.cmake 2008-08-26 02:37:51 UTC (rev 8712) +++ trunk/examples/ada/xthick29a.adb.cmake 2008-08-26 09:02:42 UTC (rev 8713) @@ -121,7 +121,12 @@ begin -- Find the number of seconds since January 1, 1970 to December 1, 2005. -- Should be 1_133_395_200.0. - xmin := Long_Float(Time_Of(2005, 12, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); + -- This method does not work reliably for timezones which were + -- on daylight saving time on Janary 1 1970, e.g. the UK. + -- xmin := Long_Float(Time_Of(2005, 12, 1, 0.0) - Time_Of(1970, 1, 1, 0.0)); + -- For now we will just hard code it + xmin := 1133395200.0; + xmax := xmin + Long_Float(x'length) * 60.0 * 60.0 * 24.0; ymin := 0.0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-12-18 12:24:15
|
Revision: 9187 http://plplot.svn.sourceforge.net/plplot/?rev=9187&view=rev Author: andrewross Date: 2008-12-18 11:43:43 +0000 (Thu, 18 Dec 2008) Log Message: ----------- Update ada examples 1, 3, 9 and 13 consistent with C versions. Modified Paths: -------------- trunk/examples/ada/x01a.adb.cmake trunk/examples/ada/x03a.adb.cmake trunk/examples/ada/x09a.adb.cmake trunk/examples/ada/x13a.adb.cmake Modified: trunk/examples/ada/x01a.adb.cmake =================================================================== --- trunk/examples/ada/x01a.adb.cmake 2008-12-18 09:54:53 UTC (rev 9186) +++ trunk/examples/ada/x01a.adb.cmake 2008-12-18 11:43:43 UTC (rev 9187) @@ -146,8 +146,6 @@ begin -- plplot initialization - -- Divide page into 2x2 plots unless user overrides - plssub(2, 2); -- Parse and process command line arguments plparseopts(PL_PARSE_FULL); @@ -156,7 +154,8 @@ Put_Line("PLplot library version: " & plgver); -- Initialize plplot - plinit; + -- Divide page into 2x2 plots unless user overrides + plstar(2, 2); -- Set up the data -- Original case Modified: trunk/examples/ada/x03a.adb.cmake =================================================================== --- trunk/examples/ada/x03a.adb.cmake 2008-12-18 09:54:53 UTC (rev 9186) +++ trunk/examples/ada/x03a.adb.cmake 2008-12-18 11:43:43 UTC (rev 9187) @@ -56,6 +56,10 @@ -- Parse and process command line arguments. plparseopts(PL_PARSE_FULL); + -- Set orientation to landscape - note not all device drivers + -- support this, in particular most interactive drivers do not */ + plsori(Portrait); + -- Initialize plplot plinit; Modified: trunk/examples/ada/x09a.adb.cmake =================================================================== --- trunk/examples/ada/x09a.adb.cmake 2008-12-18 09:54:53 UTC (rev 9186) +++ trunk/examples/ada/x09a.adb.cmake 2008-12-18 11:43:43 UTC (rev 9187) @@ -332,6 +332,7 @@ -- which is where the type for the "pltr" subprograms is declared. Even if -- I move that type declaration into the thick bindings, the problem remains. + pl_setcontlabelformat(4,3); pl_setcontlabelparam(0.006, 0.3, 0.1, True); plenv(-1.0, 1.0, -1.0, 1.0, 0, 0); plcol0(2); Modified: trunk/examples/ada/x13a.adb.cmake =================================================================== --- trunk/examples/ada/x13a.adb.cmake 2008-12-18 09:54:53 UTC (rev 9186) +++ trunk/examples/ada/x13a.adb.cmake 2008-12-18 11:43:43 UTC (rev 9187) @@ -53,7 +53,12 @@ -- Initialize plplot plinit; - plenv(0.0, 10.0, 0.0, 10.0, 1, -2); + pladv(0); + -- Ensure window has aspect ratio of one so circle is + -- plotted as a circle. + plvasp(1.0); + plwind(0.0, 10.0, 0.0, 10.0); + -- plenv(0.0, 10.0, 0.0, 10.0, 1, -2); plcol0(2); -- n.b. all theta quantities scaled by 2 * pi / 500 to be integers to avoid This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-12-23 08:18:44
|
Revision: 9218 http://plplot.svn.sourceforge.net/plplot/?rev=9218&view=rev Author: jbauck Date: 2008-12-23 08:18:39 +0000 (Tue, 23 Dec 2008) Log Message: ----------- Update xthick01a.adb, xthick03a.adb, xthick09a.adb, xthick13a.adb to match recent changes to x01a.adb, x03a.adb, x09a.adb, x13a.adb. Modified Paths: -------------- trunk/examples/ada/x01a.adb.cmake trunk/examples/ada/x03a.adb.cmake trunk/examples/ada/x13a.adb.cmake trunk/examples/ada/xthick01a.adb.cmake trunk/examples/ada/xthick03a.adb.cmake trunk/examples/ada/xthick09a.adb.cmake trunk/examples/ada/xthick13a.adb.cmake Modified: trunk/examples/ada/x01a.adb.cmake =================================================================== --- trunk/examples/ada/x01a.adb.cmake 2008-12-22 23:37:25 UTC (rev 9217) +++ trunk/examples/ada/x01a.adb.cmake 2008-12-23 08:18:39 UTC (rev 9218) @@ -144,9 +144,6 @@ end plot3; begin - -- plplot initialization - - -- Parse and process command line arguments plparseopts(PL_PARSE_FULL); Modified: trunk/examples/ada/x03a.adb.cmake =================================================================== --- trunk/examples/ada/x03a.adb.cmake 2008-12-22 23:37:25 UTC (rev 9217) +++ trunk/examples/ada/x03a.adb.cmake 2008-12-23 08:18:39 UTC (rev 9218) @@ -56,8 +56,8 @@ -- Parse and process command line arguments. plparseopts(PL_PARSE_FULL); - -- Set orientation to landscape - note not all device drivers - -- support this, in particular most interactive drivers do not */ + -- Set orientation to landscape. Note not all device drivers + -- support this, in particular most interactive drivers do not. plsori(Portrait); -- Initialize plplot Modified: trunk/examples/ada/x13a.adb.cmake =================================================================== --- trunk/examples/ada/x13a.adb.cmake 2008-12-22 23:37:25 UTC (rev 9217) +++ trunk/examples/ada/x13a.adb.cmake 2008-12-23 08:18:39 UTC (rev 9218) @@ -54,8 +54,8 @@ plinit; pladv(0); - -- Ensure window has aspect ratio of one so circle is - -- plotted as a circle. + + -- Ensure window has aspect ratio of one so circle is plotted as a circle. plvasp(1.0); plwind(0.0, 10.0, 0.0, 10.0); -- plenv(0.0, 10.0, 0.0, 10.0, 1, -2); Modified: trunk/examples/ada/xthick01a.adb.cmake =================================================================== --- trunk/examples/ada/xthick01a.adb.cmake 2008-12-22 23:37:25 UTC (rev 9217) +++ trunk/examples/ada/xthick01a.adb.cmake 2008-12-23 08:18:39 UTC (rev 9218) @@ -144,11 +144,6 @@ end plot3; begin - -- plplot initialization - - -- Divide page into 2x2 plots unless user overrides - Set_Number_Of_Subpages(2, 2); - -- Parse and process command line arguments Parse_Command_Line_Arguments(Parse_Full); @@ -156,7 +151,8 @@ Put_Line("PLplot library version: " & Get_Version_Number); -- Initialize plplot - Initialize_PLplot; + -- Divide page into 2x2 plots unless user overrides + Initialize_Query_Device(2, 2); -- Set up the data -- Original case Modified: trunk/examples/ada/xthick03a.adb.cmake =================================================================== --- trunk/examples/ada/xthick03a.adb.cmake 2008-12-22 23:37:25 UTC (rev 9217) +++ trunk/examples/ada/xthick03a.adb.cmake 2008-12-23 08:18:39 UTC (rev 9218) @@ -56,6 +56,10 @@ -- Parse and process command line arguments. Parse_Command_Line_Arguments(Parse_Full); + -- Set orientation to landscape. Note not all device drivers + -- support this, in particular most interactive drivers do not. + Set_Orientation(Portrait); + -- Initialize plplot Initialize_PLplot; Modified: trunk/examples/ada/xthick09a.adb.cmake =================================================================== --- trunk/examples/ada/xthick09a.adb.cmake 2008-12-22 23:37:25 UTC (rev 9217) +++ trunk/examples/ada/xthick09a.adb.cmake 2008-12-23 08:18:39 UTC (rev 9218) @@ -332,6 +332,7 @@ -- which is where the type for the "pltr" subprograms is declared. Even if -- I move that type declaration into the thick bindings, the problem remains. + Set_Contour_Label_Format(4,3); Set_Contour_Label_Parameters(0.006, 0.3, 0.1, True); Set_Environment(-1.0, 1.0, -1.0, 1.0, Not_Justified, Linear_Box_Plus); Set_Pen_Color(Yellow); Modified: trunk/examples/ada/xthick13a.adb.cmake =================================================================== --- trunk/examples/ada/xthick13a.adb.cmake 2008-12-22 23:37:25 UTC (rev 9217) +++ trunk/examples/ada/xthick13a.adb.cmake 2008-12-23 08:18:39 UTC (rev 9218) @@ -53,7 +53,12 @@ -- Initialize plplot Initialize_PLplot; - Set_Environment(0.0, 10.0, 0.0, 10.0, Justified, No_Box); + Advance_To_Subpage(Next_Subpage); + + -- Ensure window has aspect ratio of one so circle is plotted as a circle. + Set_Viewport_Aspect_Ratio(1.0); + Set_Viewport_World(0.0, 10.0, 0.0, 10.0); + -- Set_Environment(0.0, 10.0, 0.0, 10.0, Justified, No_Box); Set_Pen_Color(Yellow); -- n.b. all theta quantities scaled by 2 * pi / 500 to be integers to avoid This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-12-30 00:03:41
|
Revision: 9233 http://plplot.svn.sourceforge.net/plplot/?rev=9233&view=rev Author: jbauck Date: 2008-12-30 00:03:38 +0000 (Tue, 30 Dec 2008) Log Message: ----------- Changed textual output (stdout) of x23a.adb and xthick23a.adb so that they match the C example. This called for outputting a hex number in C format 0x00000000 rather than Ada format 16#00000000#. Modified Paths: -------------- trunk/examples/ada/x23a.adb.cmake trunk/examples/ada/xthick23a.adb.cmake Modified: trunk/examples/ada/x23a.adb.cmake =================================================================== --- trunk/examples/ada/x23a.adb.cmake 2008-12-27 22:28:58 UTC (rev 9232) +++ trunk/examples/ada/x23a.adb.cmake 2008-12-30 00:03:38 UTC (rev 9233) @@ -109,7 +109,6 @@ end title; - lo : array (0 .. 10) of Integer := ( 16#0#, 16#0#, @@ -365,7 +364,12 @@ plgfci(fci_old); plgfont(ifamily, istyle, iweight); Put("For example 23 prior to page 12 the FCI is "); - Put(fci_old, Base => 16, Width => 0); + + -- The following hack in outputting the hexadecimal value of fci_old in "C" + -- style, e.g. 0x00000000 instead of "Ada" style 16#00000000#, is done in + -- order to create the same textual output as the C example x23c. + -- Put(fci_old, Base => 16, Width => 0); -- Outputs "Ada" style. + Put("0x" & Hex_Image_8(fci_old)); -- Outputs "C" style. New_Line; Put("For example 23 prior to page 12 the font family, style and weight are " & family(ifamily) & " " & style(istyle) & " " & weight(iweight)); Modified: trunk/examples/ada/xthick23a.adb.cmake =================================================================== --- trunk/examples/ada/xthick23a.adb.cmake 2008-12-27 22:28:58 UTC (rev 9232) +++ trunk/examples/ada/xthick23a.adb.cmake 2008-12-30 00:03:38 UTC (rev 9233) @@ -109,7 +109,6 @@ end title; - lo : array (0 .. 10) of Integer := ( 16#0#, 16#0#, @@ -365,9 +364,14 @@ Get_Font_Characterization_Integer(fci_old); Get_Font(ifamily, istyle, iweight); Put("For example 23 prior to page 12 the FCI is "); - Put(fci_old, Base => 16, Width => 0); + + -- The following hack in outputting the hexadecimal value of fci_old in "C" + -- style, e.g. 0x00000000 instead of "Ada" style 16#00000000#, is done in + -- order to create the same textual output as the C example x23c. + -- Put(fci_old, Base => 16, Width => 0); -- Outputs "Ada" style. + Put("0x" & Hex_Image_8(fci_old)); -- Outputs "C" style. New_Line; - Put("For example 23 prior to page 12 the font family, style and weight are " + Put("For example 23 prior to page 12 the font family, style and weight are " & family(ifamily) & " " & style(istyle) & " " & weight(iweight)); New_Line; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-12-31 05:52:57
|
Revision: 9235 http://plplot.svn.sourceforge.net/plplot/?rev=9235&view=rev Author: jbauck Date: 2008-12-31 05:52:54 +0000 (Wed, 31 Dec 2008) Log Message: ----------- Update Ada examples x15.adb and xthick15.adb. Modified Paths: -------------- trunk/examples/ada/x15a.adb.cmake trunk/examples/ada/xthick15a.adb.cmake Modified: trunk/examples/ada/x15a.adb.cmake =================================================================== --- trunk/examples/ada/x15a.adb.cmake 2008-12-30 03:11:03 UTC (rev 9234) +++ trunk/examples/ada/x15a.adb.cmake 2008-12-31 05:52:54 UTC (rev 9235) @@ -132,7 +132,30 @@ sh_cmap : Integer := 0; sh_width : Integer; min_color, min_width, max_color, max_width : Integer := 0; + + -- C run amok. The following arrays are made to accommodate the + -- original example which is written in perverse C. + inc_0_To_4 : array (0 .. 4) of Integer_Array_1D(0 .. 0); + inc_5_To_9 : array (5 .. 9) of Integer_Array_1D(0 .. 1) := + ((450, -450), (0, 900), (0, 450), (450, -450), (0, 900)); + + del_0_To_4 : array (0 .. 4) of Integer_Array_1D(0 .. 0); + del_5_To_9 : array (5 .. 9) of Integer_Array_1D(0 .. 1) := + ((2000, 2000), (2000, 2000), (2000, 2000), (4000, 4000), (4000, 2000)); begin + -- Initialize the rest of the amokified arrays. + inc_0_To_4(0)(0) := 450; + inc_0_To_4(1)(0) := -450; + inc_0_To_4(2)(0) := 0; + inc_0_To_4(3)(0) := 900; + inc_0_To_4(4)(0) := 300; + + del_0_To_4(0)(0) := 2000; + del_0_To_4(1)(0) := 2000; + del_0_To_4(2)(0) := 2000; + del_0_To_4(3)(0) := 2000; + del_0_To_4(4)(0) := 2000; + sh_width := 2; pladv(0); @@ -144,8 +167,11 @@ shade_min := zmin + (zmax - zmin) * Long_Float(i) / 10.0; shade_max := zmin + (zmax - zmin) * Long_Float(i +1) / 10.0; sh_color := Long_Float(i + 6); - plpsty((i + 2) mod 8 + 1); - + if i in 0 .. 4 then + plpat(inc_0_To_4(i), del_0_To_4(i)); + else + plpat(inc_5_To_9(i), del_5_To_9(i)); + end if; plshade1(z, Mask_Function_No_Mask'access, -1.0, 1.0, -1.0, 1.0, shade_min, shade_max, sh_cmap, sh_color, sh_width, @@ -159,6 +185,41 @@ pllab("distance", "altitude", "Bogon flux"); end plot2; + ---------------------------------------------------------------------------- + -- plot3 + -- Illustrates shaded regions in 3d, using a different fill pattern for + -- each region. + ---------------------------------------------------------------------------- + procedure plot3 is + xx : array (0 .. 1) of Real_Vector(0 ..4) := + ((-1.0, 1.0, 1.0, -1.0, -1.0), + (-1.0, 1.0, 1.0, -1.0, -1.0)); + yy : array (0 .. 1) of Real_Vector(0 ..4) := + ((1.0, 1.0, 0.0, 0.0, 1.0), + (-1.0, -1.0, 0.0, 0.0, -1.0)); + zz : array (0 .. 1) of Real_Vector(0 ..4) := + ((0.0, 0.0, 1.0, 1.0, 0.0), + (0.0, 0.0, 1.0, 1.0, 0.0)); + begin + pladv(0); + plvpor(0.1, 0.9, 0.1, 0.9); + plwind(-1.0, 1.0, -1.0, 1.0); + plw3d(1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 0.0, 1.5, 30.0, -40.0); + + -- Plot using identity transform + plcol0(1); + plbox3("bntu", "X", 0.0, 0, "bntu", "Y", 0.0, 0, "bcdfntu", "Z", 0.5, 0); + plcol0(2); + pllab("","","3-d polygon filling"); + plcol0(3); + plpsty(1); + plline3(xx(0), yy(0), zz(0)); + plfill3(xx(0)(0 .. 3), yy(0)(0 .. 3), zz(0)(0 .. 3)); + plpsty(2); + plline3(xx(1), yy(1), zz(1)); + plfill3(xx(1)(0 .. 3), yy(1)(0 .. 3), zz(1)(0 .. 3)); + end; + begin -- Parse and process command line arguments plparseopts(PL_PARSE_FULL); @@ -183,6 +244,7 @@ plot1; plot2; + plot3; plend; end x15a; Modified: trunk/examples/ada/xthick15a.adb.cmake =================================================================== --- trunk/examples/ada/xthick15a.adb.cmake 2008-12-30 03:11:03 UTC (rev 9234) +++ trunk/examples/ada/xthick15a.adb.cmake 2008-12-31 05:52:54 UTC (rev 9235) @@ -132,7 +132,30 @@ sh_cmap : Integer := 0; sh_width : Integer; min_color, min_width, max_color, max_width : Integer := 0; + + -- C run amok. The following arrays are made to accommodate the + -- original example which is written in perverse C. + inc_0_To_4 : array (0 .. 4) of Integer_Array_1D(0 .. 0); + inc_5_To_9 : array (5 .. 9) of Integer_Array_1D(0 .. 1) := + ((450, -450), (0, 900), (0, 450), (450, -450), (0, 900)); + + del_0_To_4 : array (0 .. 4) of Integer_Array_1D(0 .. 0); + del_5_To_9 : array (5 .. 9) of Integer_Array_1D(0 .. 1) := + ((2000, 2000), (2000, 2000), (2000, 2000), (4000, 4000), (4000, 2000)); begin + -- Initialize the rest of the amokified arrays. + inc_0_To_4(0)(0) := 450; + inc_0_To_4(1)(0) := -450; + inc_0_To_4(2)(0) := 0; + inc_0_To_4(3)(0) := 900; + inc_0_To_4(4)(0) := 300; + + del_0_To_4(0)(0) := 2000; + del_0_To_4(1)(0) := 2000; + del_0_To_4(2)(0) := 2000; + del_0_To_4(3)(0) := 2000; + del_0_To_4(4)(0) := 2000; + sh_width := 2; Advance_To_Subpage(0); @@ -144,8 +167,11 @@ shade_min := zmin + (zmax - zmin) * Long_Float(i) / 10.0; shade_max := zmin + (zmax - zmin) * Long_Float(i +1) / 10.0; sh_color := Long_Float(i + 6); - Select_Fill_Pattern((i + 2) mod 8 + 1); - + if i in 0 .. 4 then + Set_Fill_Pattern(inc_0_To_4(i), del_0_To_4(i)); + else + Set_Fill_Pattern(inc_5_To_9(i), del_5_To_9(i)); + end if; Shade_Region_1(z, Mask_Function_No_Mask'access, -1.0, 1.0, -1.0, 1.0, shade_min, shade_max, sh_cmap, sh_color, sh_width, @@ -159,6 +185,41 @@ Write_Labels("distance", "altitude", "Bogon flux"); end plot2; + ---------------------------------------------------------------------------- + -- plot3 + -- Illustrates shaded regions in 3d, using a different fill pattern for + -- each region. + ---------------------------------------------------------------------------- + procedure plot3 is + xx : array (0 .. 1) of Real_Vector(0 ..4) := + ((-1.0, 1.0, 1.0, -1.0, -1.0), + (-1.0, 1.0, 1.0, -1.0, -1.0)); + yy : array (0 .. 1) of Real_Vector(0 ..4) := + ((1.0, 1.0, 0.0, 0.0, 1.0), + (-1.0, -1.0, 0.0, 0.0, -1.0)); + zz : array (0 .. 1) of Real_Vector(0 ..4) := + ((0.0, 0.0, 1.0, 1.0, 0.0), + (0.0, 0.0, 1.0, 1.0, 0.0)); + begin + Advance_To_Subpage(Next_Subpage); + Set_Viewport_Normalized(0.1, 0.9, 0.1, 0.9); + Set_Viewport_World(-1.0, 1.0, -1.0, 1.0); + Set_Up_3D(1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, 0.0, 1.5, 30.0, -40.0); + + -- Plot using identity transform + Set_Pen_Color(Red); + Box_Around_Viewport_3D("bntu", "X", 0.0, 0, "bntu", "Y", 0.0, 0, "bcdfntu", "Z", 0.5, 0); + Set_Pen_Color(Yellow); + Write_Labels("","","3-d polygon filling"); + Set_Pen_Color(Green); + Select_Fill_Pattern(1); + Draw_Curve_3D(xx(0), yy(0), zz(0)); + Fill_Polygon_3D(xx(0)(0 .. 3), yy(0)(0 .. 3), zz(0)(0 .. 3)); + Select_Fill_Pattern(2); + Draw_Curve_3D(xx(1), yy(1), zz(1)); + Fill_Polygon_3D(xx(1)(0 .. 3), yy(1)(0 .. 3), zz(1)(0 .. 3)); + end; + begin -- Parse and process command line arguments Parse_Command_Line_Arguments(Parse_Full); @@ -183,6 +244,7 @@ plot1; plot2; + plot3; End_PLplot; end xthick15a; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-01-06 07:53:34
|
Revision: 9259 http://plplot.svn.sourceforge.net/plplot/?rev=9259&view=rev Author: airwin Date: 2009-01-06 07:53:33 +0000 (Tue, 06 Jan 2009) Log Message: ----------- Change examples to use new functional form of plgfnam (and thick counterpart) to avoid trailing garbage in filename output to stderr. Modified Paths: -------------- trunk/examples/ada/x31a.adb.cmake trunk/examples/ada/xthick31a.adb.cmake Modified: trunk/examples/ada/x31a.adb.cmake =================================================================== --- trunk/examples/ada/x31a.adb.cmake 2009-01-06 07:50:42 UTC (rev 9258) +++ trunk/examples/ada/x31a.adb.cmake 2009-01-06 07:53:33 UTC (rev 9259) @@ -199,7 +199,7 @@ else Put_Line("Output file name read"); end if; - Put_Line(Standard_Error, "Output file name is " & fnam); + Put_Line(Standard_Error, "Output file name is " & plgfnam); -- Set and get the number of digits used to display axis labels. -- Note digit is currently ignored in pls[xyz]ax and Modified: trunk/examples/ada/xthick31a.adb.cmake =================================================================== --- trunk/examples/ada/xthick31a.adb.cmake 2009-01-06 07:50:42 UTC (rev 9258) +++ trunk/examples/ada/xthick31a.adb.cmake 2009-01-06 07:53:33 UTC (rev 9259) @@ -199,7 +199,7 @@ else Put_Line("Output file name read"); end if; - Put_Line(Standard_Error, "Output file name is " & fnam); + Put_Line(Standard_Error, "Output file name is " & Get_Output_File_Name); -- Set and get the number of digits used to display axis labels. -- Note digit is currently ignored in pls[xyz]ax and This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2009-03-03 19:54:55
|
Revision: 9667 http://plplot.svn.sourceforge.net/plplot/?rev=9667&view=rev Author: andrewross Date: 2009-03-03 19:54:54 +0000 (Tue, 03 Mar 2009) Log Message: ----------- Update ada versions of example 31 consistent with C version. Modified Paths: -------------- trunk/examples/ada/x31a.adb.cmake trunk/examples/ada/xthick31a.adb.cmake Modified: trunk/examples/ada/x31a.adb.cmake =================================================================== --- trunk/examples/ada/x31a.adb.cmake 2009-03-03 19:23:24 UTC (rev 9666) +++ trunk/examples/ada/x31a.adb.cmake 2009-03-03 19:54:54 UTC (rev 9667) @@ -43,20 +43,21 @@ @Ada_Is_2007_With_and_Use_Numerics@ --- This example mostly outputs text. As part of the PLplot testing regime, we +-- This example mostly outputs text. As part of the PLplot testing regime, we -- require that the text output match that of the C version, x31c.c, exactly. --- Therefore, certain extra measures were made in this Ada version to assure +-- Therefore, certain extra measures were made in this Ada version to assure -- that matching text is created. procedure x31a is xmin, xmax, ymin, ymax, zxmin, zxmax, zymin, zymax : Long_Float; xmid, ymid, wx, wy : Long_Float; - mar, aspect, jx, jy, ori : Long_Float; + mar, aspect, jx, jy, ori : Long_Float; win, level2, digmax, digit, compression1, compression2 : Integer; - xp1, yp1, xp2, yp2 : Long_Float; + xp0, yp0, xp1, yp1, xp2, yp2 : Long_Float; + xleng0, yleng0, xoff0, yoff0 : Integer; xleng1, yleng1, xoff1, yoff1, xleng2, yleng2, xoff2, yoff2 : Integer; - num1, bmax1, num2, bmax2, r, g, b : Integer; - fam1, fam2 : Boolean; + num0, bmax0, num1, bmax1, num2, bmax2, r, g, b : Integer; + fam0, fam1, fam2 : Boolean; a : Long_Float; r1 : Integer_0_255_Array(0 .. 1) := (0, 255); g1 : Integer_0_255_Array(0 .. 1) := (0, 255); @@ -64,7 +65,7 @@ a1 : Real_Vector(0 .. 1) := (1.0, 1.0); status : Integer; fnam : Unbounded_String; - + -- Convert a boolean to integers 0 or 1. function Boolean_To_Integer(B : Boolean) return Integer is begin @@ -74,7 +75,7 @@ return 0; end if; end Boolean_To_Integer; - + -- Function to return a formated float that looks like what C does. function PF(x : Long_Float) return String is A_String : String(1 .. 30); @@ -89,17 +90,29 @@ plparseopts(PL_PARSE_FULL); - -- Test setting / getting compression parameter across plinit. - compression1 := 95; - plscompression(compression1); - - -- Test setting / getting familying parameters across plinit. + -- Test setting / getting familying parameters before plinit. + -- Save values set by plparseopts to be restored later. + plgfam(fam0, num0, bmax0); fam1 := False; num1 := 10; bmax1 := 1000; plsfam(fam1, num1, bmax1); - -- Test setting / getting page parameters across plinit. + -- Retrieve the same values? + plgfam(fam2, num2, bmax2); + Put_Line("family parameters: fam, num, bmax =" + & Integer'image(Boolean_To_Integer(fam2)) + & Integer'image(num2) & Integer'image(bmax2)); + if fam2 /= fam1 or num2 /= num1 or bmax2 /= bmax1 then + Put_Line(Standard_Error, "plgfam test failed"); + status := 1; + end if; + -- Restore values set initially by plparseopts. + plsfam(fam0, num0, bmax0); + + -- Test setting / getting page parameters before plinit. + -- Save values set by plparseopts to be restored later. + plgpage(xp0, yp0, xleng0, yleng0, xoff0, yoff0); xp1 := 200.0; yp1 := 200.0; xleng1 := 400; @@ -108,6 +121,24 @@ yoff1 := 20; plspage(xp1, yp1, xleng1, yleng1, xoff1, yoff1); + -- Retrieve the same values? + plgpage(xp2, yp2, xleng2, yleng2, xoff2, yoff2); + Put("page parameters: xp, yp, xleng, yleng, xoff, yoff = " + & PF(xp2) & " " & PF(yp2)); + Put_Line(Integer'image(xleng2) & Integer'image(yleng2) + & Integer'image(xoff2) & Integer'image(yoff2)); + if xp2 /= xp1 or yp2 /= yp1 or xleng2 /= xleng1 or yleng2 /= yleng1 or + xoff2 /= xoff1 or yoff2 /= yoff1 then + Put_Line(Standard_Error, "plgpage test failed"); + status := 1; + end if; + -- Restore values set initially by plparseopts. + plspage(xp0, yp0, xleng0, yleng0, xoff0, yoff0); + + -- Test setting / getting compression parameter across plinit. + compression1 := 95; + plscompression(compression1); + -- Initialize plplot. plinit; @@ -121,30 +152,6 @@ status := 1; end if; - -- Test if device initialization screwed around with any of the - -- preset familying values. - plgfam(fam2, num2, bmax2); - Put_Line("family parameters: fam, num, bmax =" - & Integer'image(Boolean_To_Integer(fam2)) - & Integer'image(num2) & Integer'image(bmax2)); - if fam2 /= fam1 or num2 /= num1 or bmax2 /= bmax1 then - Put_Line(Standard_Error, "plgfam test failed"); - status := 1; - end if; - - -- Test if device initialization screwed around with any of the - -- preset page values. - plgpage(xp2, yp2, xleng2, yleng2, xoff2, yoff2); - Put("page parameters: xp, yp, xleng, yleng, xoff, yoff = " - & PF(xp2) & " " & PF(yp2)); - Put_Line(Integer'image(xleng2) & Integer'image(yleng2) - & Integer'image(xoff2) & Integer'image(yoff2)); - if xp2 /= xp1 or yp2 /= yp1 or xleng2 /= xleng1 or yleng2 /= yleng1 or - xoff2 /= xoff1 or yoff2 /= yoff1 then - Put_Line(Standard_Error, "plgpage test failed"); - status := 1; - end if; - -- Exercise plscolor, plscol0, plscmap1, and plscmap1a to make sure -- they work without any obvious error messages. plscolor(True); @@ -162,7 +169,7 @@ pladv(0); plvpor(0.01, 0.99, 0.02, 0.49); plgvpd(xmin, xmax, ymin, ymax); - Put_Line("plvpor: xmin, xmax, ymin, ymax = " + Put_Line("plvpor: xmin, xmax, ymin, ymax = " & PF(xmin) & " " & PF(xmax) & " " & PF(ymin) & " " & PF(ymax)); if xmin /= 0.01 or xmax /= 0.99 or ymin /= 0.02 or ymax /= 0.49 then Put_Line(Standard_Error, "plgvpd test failed"); @@ -173,7 +180,7 @@ plwind(0.2, 0.3, 0.4, 0.5); plgvpw(xmin, xmax, ymin, ymax); - Put_Line("plwind: xmin, xmax, ymin, ymax = " + Put_Line("plwind: xmin, xmax, ymin, ymax = " & PF(xmin) & " " & PF(xmax) & " " & PF(ymin) & " " & PF(ymax)); if xmin /= 0.2 or xmax /= 0.3 or ymin /= 0.4 or ymax /= 0.5 then Put_Line(Standard_Error, "plgvpw test failed"); @@ -182,15 +189,15 @@ -- Get world coordinates for middle of viewport. plcalc_world(xmid,ymid,wx,wy,win); - Put_Line("world parameters: wx, wy, win = " + Put_Line("world parameters: wx, wy, win = " & PF(wx) & " " & PF(wy) & Integer'image(win)); if abs(wx-0.5*(xmin+xmax))>1.0E-5 or abs(wy-0.5*(ymin+ymax))>1.0E-5 then Put_Line(Standard_Error, "plcalc_world test failed"); - status := 1; + status := 1; end if; -- Retrieve and print the name of the output file (if any). - -- This goes to stderr not stdout since it will vary between tests and + -- This goes to stderr not stdout since it will vary between tests and -- we want stdout to be identical for compare test. fnam := To_Unbounded_String(plgfnam); if fnam = Null_Unbounded_String then @@ -201,11 +208,11 @@ Put_Line(Standard_Error, "Output file name is " & plgfnam); -- Set and get the number of digits used to display axis labels. - -- Note digit is currently ignored in pls[xyz]ax and + -- Note digit is currently ignored in pls[xyz]ax and -- therefore it does not make sense to test the returned value. plsxax(3, 0); plgxax(digmax, digit); - Put_Line("x axis parameters: digmax, digits =" + Put_Line("x axis parameters: digmax, digits =" & Integer'image(digmax) & Integer'image(digit)); if digmax /= 3 then Put_Line(Standard_Error, "plgxax test failed"); @@ -223,7 +230,7 @@ plszax(5, 0); plgzax(digmax, digit); - Put_Line("z axis parameters: digmax, digits =" + Put_Line("z axis parameters: digmax, digits =" & Integer'image(digmax) & Integer'image(digit)); if digmax /= 5 then Put_Line(Standard_Error, "plgzax test failed"); @@ -232,7 +239,7 @@ plsdidev(0.05, PL_NOTSET, 0.1, 0.2); plgdidev(mar, aspect, jx, jy); - Put_Line("device-space window parameters: mar, aspect, jx, jy = " + Put_Line("device-space window parameters: mar, aspect, jx, jy = " & PF(mar) & " " & PF(aspect) & " " & PF(jx) & " " & PF(jy)); if mar /= 0.05 or jx /= 0.1 or jy /= 0.2 then Put_Line(Standard_Error, "plgdidev test failed"); @@ -249,7 +256,7 @@ plsdiplt(0.1, 0.2, 0.9, 0.8); plgdiplt(xmin, ymin, xmax, ymax); - Put_Line("plot-space window parameters: xmin, ymin, xmax, ymax = " + Put_Line("plot-space window parameters: xmin, ymin, xmax, ymax = " & PF(xmin) & " " & PF(ymin) & " " & PF(xmax) & " " & PF(ymax)); if xmin /= 0.1 or xmax /= 0.9 or ymin /= 0.2 or ymax /= 0.8 then Put_Line(Standard_Error, "plgdiplt test failed"); @@ -258,12 +265,12 @@ plsdiplz(0.1, 0.1, 0.9, 0.9); plgdiplt(zxmin, zymin, zxmax, zymax); - Put_Line("zoomed plot-space window parameters: xmin, ymin, xmax, ymax = " + Put_Line("zoomed plot-space window parameters: xmin, ymin, xmax, ymax = " & PF(zxmin) & " " & PF(zymin) & " " & PF(zxmax) & " " & PF(zymax)); if - abs(zxmin - (xmin + (xmax - xmin) * 0.1)) > 1.0E-5 or - abs(zxmax - (xmin + (xmax - xmin) * 0.9)) > 1.0E-5 or - abs(zymin - (ymin + (ymax - ymin) * 0.1)) > 1.0E-5 or + abs(zxmin - (xmin + (xmax - xmin) * 0.1)) > 1.0E-5 or + abs(zxmax - (xmin + (xmax - xmin) * 0.9)) > 1.0E-5 or + abs(zymin - (ymin + (ymax - ymin) * 0.1)) > 1.0E-5 or abs(zymax - (ymin + (ymax - ymin) * 0.9)) > 1.0E-5 then Put_Line(Standard_Error, "plsdiplz test failed"); Modified: trunk/examples/ada/xthick31a.adb.cmake =================================================================== --- trunk/examples/ada/xthick31a.adb.cmake 2009-03-03 19:23:24 UTC (rev 9666) +++ trunk/examples/ada/xthick31a.adb.cmake 2009-03-03 19:54:54 UTC (rev 9667) @@ -43,20 +43,21 @@ @Ada_Is_2007_With_and_Use_Numerics@ --- This example mostly outputs text. As part of the PLplot testing regime, we +-- This example mostly outputs text. As part of the PLplot testing regime, we -- require that the text output match that of the C version, x31c.c, exactly. --- Therefore, certain extra measures were made in this Ada version to assure +-- Therefore, certain extra measures were made in this Ada version to assure -- that matching text is created. procedure xthick31a is xmin, xmax, ymin, ymax, zxmin, zxmax, zymin, zymax : Long_Float; xmid, ymid, wx, wy : Long_Float; - mar, aspect, jx, jy, ori : Long_Float; + mar, aspect, jx, jy, ori : Long_Float; win, level2, digmax, digit, compression1, compression2 : Integer; - xp1, yp1, xp2, yp2 : Long_Float; + xp0, yp0, xp1, yp1, xp2, yp2 : Long_Float; + xleng0, yleng0, xoff0, yoff0 : Integer; xleng1, yleng1, xoff1, yoff1, xleng2, yleng2, xoff2, yoff2 : Integer; - num1, bmax1, num2, bmax2, r, g, b : Integer; - fam1, fam2 : Boolean; + num0, bmax0, num1, bmax1, num2, bmax2, r, g, b : Integer; + fam0, fam1, fam2 : Boolean; a : Long_Float; r1 : Integer_0_255_Array(0 .. 1) := (0, 255); g1 : Integer_0_255_Array(0 .. 1) := (0, 255); @@ -64,7 +65,7 @@ a1 : Real_Vector(0 .. 1) := (1.0, 1.0); status : Integer; fnam : Unbounded_String; - + -- Convert a boolean to integers 0 or 1. function Boolean_To_Integer(B : Boolean) return Integer is begin @@ -74,7 +75,7 @@ return 0; end if; end Boolean_To_Integer; - + -- Function to return a formated float that looks like what C does. function PF(x : Long_Float) return String is A_String : String(1 .. 30); @@ -89,17 +90,29 @@ Parse_Command_Line_Arguments(Parse_Full); - -- Test setting / getting compression parameter across Initialize_PLplot. - compression1 := 95; - Set_Compression_Level(compression1); - - -- Test setting / getting familying parameters across Initialize_PLplot. + -- Test setting / getting familying parameters before plinit. + -- Save values set by plparseopts to be restored later. + Get_File_Family_Parameters(fam0, num0, bmax0); fam1 := False; num1 := 10; bmax1 := 1000; Set_File_Family_Parameters(fam1, num1, bmax1); - -- Test setting / getting page parameters across Initialize_PLplot. + -- Retrieve the same values? + Get_File_Family_Parameters(fam2, num2, bmax2); + Put_Line("family parameters: fam, num, bmax =" + & Integer'image(Boolean_To_Integer(fam2)) + & Integer'image(num2) & Integer'image(bmax2)); + if fam2 /= fam1 or num2 /= num1 or bmax2 /= bmax1 then + Put_Line(Standard_Error, "Get_File_Family_Parameters test failed"); + status := 1; + end if; + -- Restore values set initially by plparseopts. + Set_File_Family_Parameters(fam0, num0, bmax0); + + -- Test setting / getting page parameters before plinit. + -- Save values set by plparseopts to be restored later. + Get_Page_Parameters(xp0, yp0, xleng0, yleng0, xoff0, yoff0); xp1 := 200.0; yp1 := 200.0; xleng1 := 400; @@ -108,6 +121,24 @@ yoff1 := 20; Set_Page_Parameters(xp1, yp1, xleng1, yleng1, xoff1, yoff1); + -- Retrieve the same values? + Get_Page_Parameters(xp2, yp2, xleng2, yleng2, xoff2, yoff2); + Put("page parameters: xp, yp, xleng, yleng, xoff, yoff = " + & PF(xp2) & " " & PF(yp2)); + Put_Line(Integer'image(xleng2) & Integer'image(yleng2) + & Integer'image(xoff2) & Integer'image(yoff2)); + if xp2 /= xp1 or yp2 /= yp1 or xleng2 /= xleng1 or yleng2 /= yleng1 or + xoff2 /= xoff1 or yoff2 /= yoff1 then + Put_Line(Standard_Error, "Get_Page_Parameters test failed"); + status := 1; + end if; + -- Restore values set initially by plparseopts. + Set_Page_Parameters(xp0, yp0, xleng0, yleng0, xoff0, yoff0); + + -- Test setting / getting compression parameter across Initialize_PLplot. + compression1 := 95; + Set_Compression_Level(compression1); + -- Initialize plplot. Initialize_PLplot; @@ -121,30 +152,6 @@ status := 1; end if; - -- Test if device initialization screwed around with any of the - -- preset familying values. - Get_File_Family_Parameters(fam2, num2, bmax2); - Put_Line("family parameters: fam, num, bmax =" - & Integer'image(Boolean_To_Integer(fam2)) - & Integer'image(num2) & Integer'image(bmax2)); - if fam2 /= fam1 or num2 /= num1 or bmax2 /= bmax1 then - Put_Line(Standard_Error, "Get_File_Family_Parameters test failed"); - status := 1; - end if; - - -- Test if device initialization screwed around with any of the - -- preset page values. - Get_Page_Parameters(xp2, yp2, xleng2, yleng2, xoff2, yoff2); - Put("page parameters: xp, yp, xleng, yleng, xoff, yoff = " - & PF(xp2) & " " & PF(yp2)); - Put_Line(Integer'image(xleng2) & Integer'image(yleng2) - & Integer'image(xoff2) & Integer'image(yoff2)); - if xp2 /= xp1 or yp2 /= yp1 or xleng2 /= xleng1 or yleng2 /= yleng1 or - xoff2 /= xoff1 or yoff2 /= yoff1 then - Put_Line(Standard_Error, "Get_Page_Parameters test failed"); - status := 1; - end if; - -- Exercise Enable_Color_Output, Set_One_Color_Map_0, Set_Color_Map_1_RGB, and Set_Color_Map_1_RGBa to make sure -- they work without any obvious error messages. Enable_Color_Output(True); @@ -162,7 +169,7 @@ Advance_To_Subpage(Next_Subpage); Set_Viewport_Normalized(0.01, 0.99, 0.02, 0.49); Get_Viewport_Normalized(xmin, xmax, ymin, ymax); - Put_Line("plvpor: xmin, xmax, ymin, ymax = " + Put_Line("plvpor: xmin, xmax, ymin, ymax = " & PF(xmin) & " " & PF(xmax) & " " & PF(ymin) & " " & PF(ymax)); if xmin /= 0.01 or xmax /= 0.99 or ymin /= 0.02 or ymax /= 0.49 then Put_Line(Standard_Error, "Get_Viewport_Normalized test failed"); @@ -173,7 +180,7 @@ Set_Viewport_World(0.2, 0.3, 0.4, 0.5); Get_Viewport_World(xmin, xmax, ymin, ymax); - Put_Line("plwind: xmin, xmax, ymin, ymax = " + Put_Line("plwind: xmin, xmax, ymin, ymax = " & PF(xmin) & " " & PF(xmax) & " " & PF(ymin) & " " & PF(ymax)); if xmin /= 0.2 or xmax /= 0.3 or ymin /= 0.4 or ymax /= 0.5 then Put_Line(Standard_Error, "Get_Viewport_World test failed"); @@ -182,15 +189,15 @@ -- Get world coordinates for middle of viewport. World_From_Relative_Coordinates(xmid,ymid,wx,wy,win); - Put_Line("world parameters: wx, wy, win = " + Put_Line("world parameters: wx, wy, win = " & PF(wx) & " " & PF(wy) & Integer'image(win)); if abs(wx-0.5*(xmin+xmax))>1.0E-5 or abs(wy-0.5*(ymin+ymax))>1.0E-5 then Put_Line(Standard_Error, "World_From_Relative_Coordinates test failed"); - status := 1; + status := 1; end if; -- Retrieve and print the name of the output file (if any). - -- This goes to stderr not stdout since it will vary between tests and + -- This goes to stderr not stdout since it will vary between tests and -- we want stdout to be identical for compare test. fnam := To_Unbounded_String(Get_Output_File_Name); if fnam = Null_Unbounded_String then @@ -201,11 +208,11 @@ Put_Line(Standard_Error, "Output file name is " & Get_Output_File_Name); -- Set and get the number of digits used to display axis labels. - -- Note digit is currently ignored in pls[xyz]ax and + -- Note digit is currently ignored in pls[xyz]ax and -- therefore it does not make sense to test the returned value. Set_Floating_Point_Display_X(3, 0); Get_X_Label_Parameters(digmax, digit); - Put_Line("x axis parameters: digmax, digits =" + Put_Line("x axis parameters: digmax, digits =" & Integer'image(digmax) & Integer'image(digit)); if digmax /= 3 then Put_Line(Standard_Error, "Get_X_Label_Parameters test failed"); @@ -223,7 +230,7 @@ Set_Floating_Point_Display_Z(5, 0); Get_Z_Label_Parameters(digmax, digit); - Put_Line("z axis parameters: digmax, digits =" + Put_Line("z axis parameters: digmax, digits =" & Integer'image(digmax) & Integer'image(digit)); if digmax /= 5 then Put_Line(Standard_Error, "Get_Z_Label_Parameters test failed"); @@ -232,7 +239,7 @@ Set_Device_Window_Parameters(0.05, PL_NOTSET, 0.1, 0.2); Get_Device_Window_Parameters(mar, aspect, jx, jy); - Put_Line("device-space window parameters: mar, aspect, jx, jy = " + Put_Line("device-space window parameters: mar, aspect, jx, jy = " & PF(mar) & " " & PF(aspect) & " " & PF(jx) & " " & PF(jy)); if mar /= 0.05 or jx /= 0.1 or jy /= 0.2 then Put_Line(Standard_Error, "Get_Device_Window_Parameters test failed"); @@ -249,7 +256,7 @@ Set_Device_Window_Extrema(0.1, 0.2, 0.9, 0.8); Get_Device_Window_Extrema(xmin, ymin, xmax, ymax); - Put_Line("plot-space window parameters: xmin, ymin, xmax, ymax = " + Put_Line("plot-space window parameters: xmin, ymin, xmax, ymax = " & PF(xmin) & " " & PF(ymin) & " " & PF(xmax) & " " & PF(ymax)); if xmin /= 0.1 or xmax /= 0.9 or ymin /= 0.2 or ymax /= 0.8 then Put_Line(Standard_Error, "Get_Device_Window_Extrema test failed"); @@ -258,12 +265,12 @@ Set_Zoom(0.1, 0.1, 0.9, 0.9); Get_Device_Window_Extrema(zxmin, zymin, zxmax, zymax); - Put_Line("zoomed plot-space window parameters: xmin, ymin, xmax, ymax = " + Put_Line("zoomed plot-space window parameters: xmin, ymin, xmax, ymax = " & PF(zxmin) & " " & PF(zymin) & " " & PF(zxmax) & " " & PF(zymax)); if - abs(zxmin - (xmin + (xmax - xmin) * 0.1)) > 1.0E-5 or - abs(zxmax - (xmin + (xmax - xmin) * 0.9)) > 1.0E-5 or - abs(zymin - (ymin + (ymax - ymin) * 0.1)) > 1.0E-5 or + abs(zxmin - (xmin + (xmax - xmin) * 0.1)) > 1.0E-5 or + abs(zxmax - (xmin + (xmax - xmin) * 0.9)) > 1.0E-5 or + abs(zymin - (ymin + (ymax - ymin) * 0.1)) > 1.0E-5 or abs(zymax - (ymin + (ymax - ymin) * 0.9)) > 1.0E-5 then Put_Line(Standard_Error, "Set_Zoom test failed"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-08-05 02:00:10
|
Revision: 10212 http://plplot.svn.sourceforge.net/plplot/?rev=10212&view=rev Author: airwin Date: 2009-08-05 01:59:38 +0000 (Wed, 05 Aug 2009) Log Message: ----------- Use same CMakeLists.txt file for the core build (if BUILD_TEST=ON) and install of the Ada examples and the install-tree build of the Ada examples. Modified Paths: -------------- trunk/examples/ada/CMakeLists.txt Removed Paths: ------------- trunk/examples/ada/CMakeLists.txt_installed_examples_ada Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2009-08-05 01:40:49 UTC (rev 10211) +++ trunk/examples/ada/CMakeLists.txt 2009-08-05 01:59:38 UTC (rev 10212) @@ -1,7 +1,7 @@ # examples/ada/CMakeLists.txt ### Process this file with cmake to produce Makefile ### -# Copyright (C) 2007 Alan W. Irwin +# Copyright (C) 2007, 2008, 2009 Alan W. Irwin # # This file is part of PLplot. # @@ -18,6 +18,12 @@ # along with PLplot; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# N.B. This file is used for both the core build (which installs the examples +# and optionally [depending on BUILD_TEST} builds them) and the installed +# examples build. The core build has BUILD_TEST OFF or ON at user option +# and CORE_BUILD always ON. The installed examples build always has +# BUILD_TEST ON and CORE_BUILD OFF. + set(ada_STRING_INDICES "01" "02" @@ -84,71 +90,86 @@ ) if(BUILD_TEST) - remove_definitions("-DHAVE_CONFIG_H") - include_directories( - ${CMAKE_BINARY_DIR}/examples/ada - ${CMAKE_BINARY_DIR}/bindings/ada - ) + if(CORE_BUILD) + remove_definitions("-DHAVE_CONFIG_H") + include_directories( + ${CMAKE_BINARY_DIR}/examples/ada + ${CMAKE_BINARY_DIR}/bindings/ada + ) + else(CORE_BUILD) + include_directories(${INCLUDE_DIR} ${ADA_INCLUDE_DIR}) + endif(CORE_BUILD) endif(BUILD_TEST) -foreach(STRING_INDEX ${ada_STRING_INDICES}) - set(TARGET_NAME x${STRING_INDEX}a) - set(SOURCE_FILE x${STRING_INDEX}a.adb) - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} - ) - # Build up list of full-path examples source names to be used (eventually - # but not until this interface has matured) for installation. - list(APPEND ada_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE}) - if(BUILD_TEST) - # Note due to limitations of the Ada language support for CMake, the the - # nominal source file for add_executable is compiled (which is why a - # real file has to be specified), but otherwise it is ignored except for - # its .adb suffix which identifies the Ada language. The actual source - # file name for the internal gnatmake command that creates the - # executable is constructed from <TARGET>.adb. Since no directory can - # be specified from this construction (don't ask), you must specify the - # directory of <TARGET>.adb with a -aI option (see below). - add_executable( - ${TARGET_NAME} - ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} - ) + +if(CORE_BUILD) + foreach(STRING_INDEX ${ada_STRING_INDICES}) + set(SOURCE_FILE x${STRING_INDEX}a.adb) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} + ) + list(APPEND ada_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE}) + endforeach(STRING_INDEX ${ada_STRING_INDICES}) +endif(CORE_BUILD) + +if(BUILD_TEST) + # The first -aI option in adalinkflags is required to find <TARGET>.adb + # (see comment below). The second -aI option gives access to the + # libplplotada spec files. The -aL option gives access to the + # libplplotada *.ali files. (That location currently works but is + # probably not guaranteed indefinitely for future versions of + # CMake.) - # The first -aI option is required to find <TARGET>.adb (see above - # comment). The second -aI option gives access to the libplplotada spec - # files. The -aL option gives access to the libplplotada *.ali files. - # (That location currently works but is probably not guaranteed - # indefinitely for future versions of CMake.) - - set_target_properties( - ${TARGET_NAME} - PROPERTIES - LINK_FLAGS - "-aI${CMAKE_BINARY_DIR}/examples/ada -aI${CMAKE_BINARY_DIR}/bindings/ada -aL${CMAKE_BINARY_DIR}/bindings/ada/CMakeFiles/plplotada${LIB_TAG}.dir" - ) + if(CORE_BUILD) + set(adalinkflags "-aI${CMAKE_BINARY_DIR}/examples/ada -aI${CMAKE_BINARY_DIR}/bindings/ada -aL${CMAKE_BINARY_DIR}/bindings/ada/CMakeFiles/plplotada${LIB_TAG}.dir") + else(CORE_BUILD) + set(adalinkflags "-aI${CMAKE_SOURCE_DIR}/ada -aI${ADA_INCLUDE_DIR} -aL${ADA_LIB_DIR}") + endif(CORE_BUILD) + + foreach(STRING_INDEX ${ada_STRING_INDICES}) + set(TARGET_NAME x${STRING_INDEX}a) + set(SOURCE_FILE x${STRING_INDEX}a.adb) + + if(CORE_BUILD) + set(adasrcfile ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE}) + else(CORE_BUILD) + set(adasrcfile ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}) + endif(CORE_BUILD) + + # Note due to limitations of the Ada language support for CMake, + # the nominal source file for add_executable is compiled (which is + # why a real file has to be specified), but otherwise it is + # ignored except for its .adb suffix which identifies the Ada + # language. The actual source file name for the internal gnatmake + # command that creates the executable is constructed from + # <TARGET>.adb. Since no directory can be specified from this + # construction (don't ask), you must specify the directory of + # <TARGET>.adb with a -aI option (see above comment of adalinkflags). + add_executable(${TARGET_NAME} ${adasrcfile}) + + set_target_properties(${TARGET_NAME} PROPERTIES LINK_FLAGS ${adalinkflags}) target_link_libraries(${TARGET_NAME} plplotada${LIB_TAG}) + set_property(GLOBAL APPEND PROPERTY TARGETS_examples_ada ${TARGET_NAME}) list(APPEND ada_extra_clean_files "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.o;${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.ali") - endif(BUILD_TEST) -endforeach(STRING_INDEX ${ada_STRING_INDICES}) + endforeach(STRING_INDEX ${ada_STRING_INDICES}) -if(BUILD_TEST) -SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ada_extra_clean_files}") + set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ada_extra_clean_files}") endif(BUILD_TEST) -install(FILES ${ada_SRCS} DESTINATION ${DATA_DIR}/examples/ada) +if(CORE_BUILD) + install(FILES ${ada_SRCS} DESTINATION ${DATA_DIR}/examples/ada) -configure_file( -${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in -${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples -) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in + ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + ) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples -DESTINATION ${DATA_DIR}/examples/ada -RENAME Makefile -) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + DESTINATION ${DATA_DIR}/examples/ada + RENAME Makefile + ) -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt_installed_examples_ada -DESTINATION ${DATA_DIR}/examples/ada -RENAME CMakeLists.txt -) - + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt + DESTINATION ${DATA_DIR}/examples/ada + ) +endif(CORE_BUILD) Deleted: trunk/examples/ada/CMakeLists.txt_installed_examples_ada =================================================================== --- trunk/examples/ada/CMakeLists.txt_installed_examples_ada 2009-08-05 01:40:49 UTC (rev 10211) +++ trunk/examples/ada/CMakeLists.txt_installed_examples_ada 2009-08-05 01:59:38 UTC (rev 10212) @@ -1,116 +0,0 @@ -# ada/CMakeLists.txt for installed PLplot examples -### Process this file with cmake to produce Makefile -### -# Copyright (C) 2009 Alan W. Irwin -# -# This file is part of PLplot. -# -# PLplot is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; version 2 of the License. -# -# PLplot is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with PLplot; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -set(ada_STRING_INDICES - "01" - "02" - "03" - "04" - "05" - "06" - "07" - "08" - "09" - "10" - "11" - "12" - "13" - "14" - "15" - "16" - "17" - "18" - "19" - "20" - "21" - "22" - "23" - "24" - "25" - "26" - "27" - "28" - "29" - "30" - "31" - "thick01" - "thick02" - "thick03" - "thick04" - "thick05" - "thick06" - "thick07" - "thick08" - "thick09" - "thick10" - "thick11" - "thick12" - "thick13" - "thick14" - "thick15" - "thick16" - "thick17" - "thick18" - "thick19" - "thick20" - "thick21" - "thick22" - "thick23" - "thick24" - "thick25" - "thick26" - "thick27" - "thick28" - "thick29" - "thick30" - "thick31" - ) - -include_directories(${INCLUDE_DIR} ${ADA_INCLUDE_DIR}) -foreach(STRING_INDEX ${ada_STRING_INDICES}) - set(TARGET_NAME x${STRING_INDEX}a) - set(SOURCE_FILE x${STRING_INDEX}a.adb) - # Note due to limitations of the Ada language support for CMake, the the - # nominal source file for add_executable is compiled (which is why a - # real file has to be specified), but otherwise it is ignored except for - # its .adb suffix which identifies the Ada language. The actual source - # file name for the internal gnatmake command that creates the - # executable is constructed from <TARGET>.adb. Since no directory can - # be specified from this construction (don't ask), you must specify the - # directory of <TARGET>.adb with a -aI option (see below). - add_executable( - ${TARGET_NAME} - ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE} - ) - - # The first -aI option is required to find <TARGET>.adb (see above - # comment). The second -aI option gives access to the libplplotada spec - # files. The -aL option gives access to the installed libplplotada - # *.ali files. - - set_target_properties( - ${TARGET_NAME} - PROPERTIES - LINK_FLAGS - "-aI${CMAKE_SOURCE_DIR}/ada -aI${ADA_INCLUDE_DIR} -aL${ADA_LIB_DIR}" - ) - target_link_libraries(${TARGET_NAME} plplotada${LIB_TAG}) - set_property(GLOBAL APPEND PROPERTY TARGETS_examples_ada ${TARGET_NAME}) -endforeach(STRING_INDEX ${ada_STRING_INDICES}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2010-02-23 06:38:43
|
Revision: 10811 http://plplot.svn.sourceforge.net/plplot/?rev=10811&view=rev Author: jbauck Date: 2010-02-23 06:38:37 +0000 (Tue, 23 Feb 2010) Log Message: ----------- Fix minor bugs in formerly commented-out lines which exercise the "defined" feature of plshade. Since the option "exclude" is not parsed by the command line parser in these Ada examples as it is in the C example, this code can be reached only by editing the source to make exclude := True. When this is done, the Poscript output matches that of the C output when it is run with "exclude" passed from the command line, e.g., x16c -exclude Modified Paths: -------------- trunk/examples/ada/x16a.adb.cmake trunk/examples/ada/xthick16a.adb.cmake Modified: trunk/examples/ada/x16a.adb.cmake =================================================================== --- trunk/examples/ada/x16a.adb.cmake 2010-02-22 12:50:48 UTC (rev 10810) +++ trunk/examples/ada/x16a.adb.cmake 2010-02-23 06:38:37 UTC (rev 10811) @@ -88,6 +88,9 @@ -- Masking function + function zdefined(x, y : Long_Float) return Integer; + pragma Convention(C, zdefined); + function zdefined(x, y : Long_Float) return Integer is z : Long_Float := sqrt(x * x + y * y); begin @@ -264,36 +267,36 @@ -- Plot using 2d coordinate transform and exclusion - -- Ada note: This "exclusion" part should work if exclude is set to True. + -- Ada note: This "exclusion" part works if exclude is set to True. -- In the C original example, the setting of exclude was handled by the -- the input parser which handling is not implemented in this Ada example. --- exclude := True; --- if exclude then --- --- -- Load colour palettes. --- plspal0("cmap0_black_on_white.pal"); --- plspal1("cmap1_gray.pal", 1); --- --- -- Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display. --- plscmap0n(3); --- --- pladv(0); --- plvpor(0.1, 0.9, 0.1, 0.9); --- plwind(-1.0, 1.0, -1.0, 1.0); --- --- plpsty(0); --- --- plshades(z, zdefined'Unrestricted_Access, -1.0, 1.0, -1.0, 1.0, --- shedge, fill_width, --- cont_color, cont_width, --- plfill'access, False, pltr2'access, cgrid2'Address); --- --- plcol0(1); --- plbox("bcnst", 0.0, 0, "bcnstv", 0.0, 0); --- --- pllab("distance", "altitude", "Bogon density with exclusion"); --- end if; + exclude := False; + if exclude then + -- Load colour palettes. + plspal0("cmap0_black_on_white.pal"); + plspal1("cmap1_gray.pal", True); + + -- Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display. + plscmap0n(3); + + pladv(0); + plvpor(0.1, 0.9, 0.1, 0.9); + plwind(-1.0, 1.0, -1.0, 1.0); + + plpsty(0); + + plshades(z, zdefined'Unrestricted_Access, -1.0, 1.0, -1.0, 1.0, + shedge, fill_width, + cont_color, cont_width, + plfill'access, False, pltr2'access, cgrid2'Address); + + plcol0(1); + plbox("bcnst", 0.0, 0, "bcnstv", 0.0, 0); + + pllab("distance", "altitude", "Bogon density with exclusion"); + end if; + -- Example with polar coordinates. -- Load colour palettes. Modified: trunk/examples/ada/xthick16a.adb.cmake =================================================================== --- trunk/examples/ada/xthick16a.adb.cmake 2010-02-22 12:50:48 UTC (rev 10810) +++ trunk/examples/ada/xthick16a.adb.cmake 2010-02-23 06:38:37 UTC (rev 10811) @@ -88,6 +88,9 @@ -- Masking function + function zdefined(x, y : Long_Float) return Integer; + pragma Convention(C, zdefined); + function zdefined(x, y : Long_Float) return Integer is z : Long_Float := sqrt(x * x + y * y); begin @@ -264,36 +267,36 @@ -- Plot using 2d coordinate transform and exclusion - -- Ada note: This "exclusion" part should work if exclude is set to True. + -- Ada note: This "exclusion" part works if exclude is set to True. -- In the C original example, the setting of exclude was handled by the -- the input parser which handling is not implemented in this Ada example. --- exclude := True; --- if exclude then --- --- -- Load colour palettes. --- Set_Color_Map_0_From_File("cmap0_black_on_white.pal"); --- Set_Color_Map_1_From_File("cmap1_gray.pal", True); --- --- -- Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display. --- Set_Number_Of_Colors_Map_0(3); --- --- Advance_To_Subpage(Next_Subpage); --- Set_Viewport_Normalized(0.1, 0.9, 0.1, 0.9); --- Set_Viewport_World(-1.0, 1.0, -1.0, 1.0); --- --- Select_Fill_Pattern(0); --- --- Shade_Regions(z, zdefined'Unrestricted_Access, -1.0, 1.0, -1.0, 1.0, --- shedge, fill_width, --- cont_color, cont_width, --- Fill_Polygon'access, False, Plot_Transformation_2'access, cgrid2'Address); --- --- Set_Pen_Color(Red); --- Box_Around_Viewport("bcnst", 0.0, 0, "bcnstv", 0.0, 0); --- --- Write_Labels("distance", "altitude", "Bogon density with exclusion"); --- end if; + exclude := False; + if exclude then + -- Load colour palettes. + Set_Color_Map_0_From_File("cmap0_black_on_white.pal"); + Set_Color_Map_1_From_File("cmap1_gray.pal", True); + + -- Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display. + Set_Number_Of_Colors_Map_0(3); + + Advance_To_Subpage(Next_Subpage); + Set_Viewport_Normalized(0.1, 0.9, 0.1, 0.9); + Set_Viewport_World(-1.0, 1.0, -1.0, 1.0); + + Select_Fill_Pattern(0); + + Shade_Regions(z, zdefined'Unrestricted_Access, -1.0, 1.0, -1.0, 1.0, + shedge, fill_width, + cont_color, cont_width, + Fill_Polygon'access, False, Plot_Transformation_2'access, cgrid2'Address); + + Set_Pen_Color(Red); + Box_Around_Viewport("bcnst", 0.0, 0, "bcnstv", 0.0, 0); + + Write_Labels("distance", "altitude", "Bogon density with exclusion"); + end if; + -- Example with polar coordinates. -- Load colour palettes. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2010-06-01 09:03:59
|
Revision: 11048 http://plplot.svn.sourceforge.net/plplot/?rev=11048&view=rev Author: jbauck Date: 2010-06-01 09:03:53 +0000 (Tue, 01 Jun 2010) Log Message: ----------- Update Ada examples 6 and 7 to match changes in C examples of around 2010 April. Modified Paths: -------------- trunk/examples/ada/x06a.adb.cmake trunk/examples/ada/x07a.adb.cmake trunk/examples/ada/xthick06a.adb.cmake trunk/examples/ada/xthick07a.adb.cmake Modified: trunk/examples/ada/x06a.adb.cmake =================================================================== --- trunk/examples/ada/x06a.adb.cmake 2010-06-01 08:49:36 UTC (rev 11047) +++ trunk/examples/ada/x06a.adb.cmake 2010-06-01 09:03:53 UTC (rev 11048) @@ -2,7 +2,7 @@ -- Displays the entire "plpoin" symbol (font) set. --- Copyright (C) 2008 Jerry Bauck +-- Copyright (C) 2010 Jerry Bauck -- This file is part of PLplot. @@ -39,7 +39,7 @@ procedure x06a is - k : Integer; + k, maxfont : Integer; x, y : Real_Vector(1 .. 1); begin @@ -49,41 +49,57 @@ -- Initialize plplot plinit; - pladv(0); + for Kind_Font in 0 .. 1 loop + plfontld(Kind_Font); + if Kind_Font = 0 then + maxfont := 1; + else + maxfont := 4; + end if; - -- Set up viewport and window - plcol0(2); - plvpor(0.1, 1.0, 0.1, 0.9); - plwind(0.0, 1.0, 0.0, 1.3); + for font in 0 .. maxfont - 1 loop + plfont(font + 1); + pladv(0); - -- Draw the grid using plbox - plbox("bcg", 0.1, 0, "bcg", 0.1, 0); + -- Set up viewport and window + plcol0(2); + plvpor(0.1, 1.0, 0.1, 0.9); + plwind(0.0, 1.0, 0.0, 1.3); - -- Write the digits below the frame - plcol0(15); - for i in 0 .. 9 loop - plmtex("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); - end loop; + -- Draw the grid using plbox + plbox("bcg", 0.1, 0, "bcg", 0.1, 0); - k := 0; - for i in 0 .. 12 loop + -- Write the digits below the frame + plcol0(15); + for i in 0 .. 9 loop + plmtex("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); + end loop; - -- Write the digits to the left of the frame - plmtex("lv", 1.0, (1.0 - (2.0 * Long_Float(i) + 1.0) / 26.0), 1.0, Trim(Integer'image(10 * i), Left)); - for j in 0 .. 9 loop - x(1) := 0.1 * Long_Float(j) + 0.05; - y(1) := 1.25 - 0.1 * Long_Float(i); + k := 0; + for i in 0 .. 12 loop - -- Display the symbols (plpoin expects that x and y are arrays so - -- pass pointers) - if k < 128 then - plpoin(x, y, k); + -- Write the digits to the left of the frame + plmtex("lv", 1.0, (1.0 - (2.0 * Long_Float(i) + 1.0) / 26.0), 1.0, Trim(Integer'image(10 * i), Left)); + for j in 0 .. 9 loop + x(1) := 0.1 * Long_Float(j) + 0.05; + y(1) := 1.25 - 0.1 * Long_Float(i); + + -- Display the symbols (plpoin expects that x and y are arrays so + -- pass pointers) + if k < 128 then + plpoin(x, y, k); + end if; + k := k + 1; + end loop; + end loop; + + if Kind_Font = 0 then + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols (compact)"); + else + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols (extended)"); end if; - k := k + 1; - end loop; - end loop; - - plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols"); + end loop; -- font + end loop; -- Kind_Font plend; end x06a; Modified: trunk/examples/ada/x07a.adb.cmake =================================================================== --- trunk/examples/ada/x07a.adb.cmake 2010-06-01 08:49:36 UTC (rev 11047) +++ trunk/examples/ada/x07a.adb.cmake 2010-06-01 09:03:53 UTC (rev 11048) @@ -2,7 +2,7 @@ -- Font demo. --- Copyright (C) 2008 Jerry Bauck +-- Copyright (C) 2010 Jerry Bauck -- This file is part of PLplot. @@ -41,8 +41,8 @@ k : Integer; x, y : Real_Vector(1 .. 1); - base : array(0 .. 16) of Integer := (0, 200, 500, 600, 700, 800, 900, 2000, - 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900); + base : array(0 .. 19) of Integer := (0, 100, 0, 100, 200, 500, 600, 700, 800, + 900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900); begin -- Parse and process command line arguments @@ -51,8 +51,11 @@ -- Initialize plplot plinit; - plfontld(1); - for l in 0 .. 16 loop + plfontld(0); + for l in 0 .. 19 loop + if l = 2 then + plfontld(1); + end if; pladv(0); -- Set up viewport and window @@ -84,7 +87,11 @@ end loop; end loop; - plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols"); + if l < 2 then + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols (compact)"); + else + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols (extended)"); + end if; end loop; plend; Modified: trunk/examples/ada/xthick06a.adb.cmake =================================================================== --- trunk/examples/ada/xthick06a.adb.cmake 2010-06-01 08:49:36 UTC (rev 11047) +++ trunk/examples/ada/xthick06a.adb.cmake 2010-06-01 09:03:53 UTC (rev 11048) @@ -2,7 +2,7 @@ -- Displays the entire "Draw_Points" symbol (font) set. --- Copyright (C) 2008 Jerry Bauck +-- Copyright (C) 2010 Jerry Bauck -- This file is part of PLplot. @@ -39,7 +39,7 @@ procedure xthick06a is - k : Integer; + k, maxfont : Integer; x, y : Real_Vector(1 .. 1); begin @@ -49,41 +49,57 @@ -- Initialize plplot Initialize_PLplot; - Advance_To_Subpage(Next_Subpage); + for Kind_Font in 0 .. 1 loop + Set_Characer_Set(Kind_Font); + if Kind_Font = 0 then + maxfont := 1; + else + maxfont := 4; + end if; - -- Set up viewport and window - Set_Pen_Color(2); - Set_Viewport_Normalized(0.1, 1.0, 0.1, 0.9); - Set_Viewport_World(0.0, 1.0, 0.0, 1.3); + for font in 0 .. maxfont - 1 loop + Set_Font_Style(font + 1); + Advance_To_Subpage(Next_Subpage); - -- Draw the grid using Box_Around_Viewport - Box_Around_Viewport("bcg", 0.1, 0, "bcg", 0.1, 0); + -- Set up viewport and window + Set_Pen_Color(2); + Set_Viewport_Normalized(0.1, 1.0, 0.1, 0.9); + Set_Viewport_World(0.0, 1.0, 0.0, 1.3); - -- Write the digits below the frame - Set_Pen_Color(15); - for i in 0 .. 9 loop - Write_Text_Viewport("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); - end loop; + -- Draw the grid using Box_Around_Viewport + Box_Around_Viewport("bcg", 0.1, 0, "bcg", 0.1, 0); - k := 0; - for i in 0 .. 12 loop + -- Write the digits below the frame + Set_Pen_Color(15); + for i in 0 .. 9 loop + Write_Text_Viewport("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); + end loop; - -- Write the digits to the left of the frame - Write_Text_Viewport("lv", 1.0, (1.0 - (2.0 * Long_Float(i) + 1.0) / 26.0), 1.0, Trim(Integer'image(10 * i), Left)); - for j in 0 .. 9 loop - x(1) := 0.1 * Long_Float(j) + 0.05; - y(1) := 1.25 - 0.1 * Long_Float(i); + k := 0; + for i in 0 .. 12 loop - -- Display the symbols (Draw_Points expects that x and y are arrays so - -- pass pointers) - if k < 128 then - Draw_Points(x, y, k); + -- Write the digits to the left of the frame + Write_Text_Viewport("lv", 1.0, (1.0 - (2.0 * Long_Float(i) + 1.0) / 26.0), 1.0, Trim(Integer'image(10 * i), Left)); + for j in 0 .. 9 loop + x(1) := 0.1 * Long_Float(j) + 0.05; + y(1) := 1.25 - 0.1 * Long_Float(i); + + -- Display the symbols (Draw_Points expects that x and y are arrays so + -- pass pointers) + if k < 128 then + Draw_Points(x, y, k); + end if; + k := k + 1; + end loop; + end loop; + + if Kind_Font = 0 then + Write_Text_Viewport("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols (compact)"); + else + Write_Text_Viewport("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols (extended)"); end if; - k := k + 1; - end loop; - end loop; - - Write_Text_Viewport("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols"); + end loop; -- font + end loop; -- Kind_Font End_PLplot; end xthick06a; Modified: trunk/examples/ada/xthick07a.adb.cmake =================================================================== --- trunk/examples/ada/xthick07a.adb.cmake 2010-06-01 08:49:36 UTC (rev 11047) +++ trunk/examples/ada/xthick07a.adb.cmake 2010-06-01 09:03:53 UTC (rev 11048) @@ -2,7 +2,7 @@ -- Font demo. --- Copyright (C) 2008 Jerry Bauck +-- Copyright (C) 2010 Jerry Bauck -- This file is part of PLplot. @@ -41,8 +41,8 @@ k : Integer; x, y : Real_Vector(1 .. 1); - base : array(0 .. 16) of Integer := (0, 200, 500, 600, 700, 800, 900, 2000, - 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900); + base : array(0 .. 19) of Integer := (0, 100, 0, 100, 200, 500, 600, 700, 800, + 900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900); begin -- Parse and process command line arguments @@ -51,8 +51,11 @@ -- Initialize plplot Initialize_PLplot; - Set_Characer_Set(1); - for l in 0 .. 16 loop + Set_Characer_Set(0); + for l in 0 .. 19 loop + if l = 2 then + Set_Characer_Set(1); + end if; Advance_To_Subpage(Next_Subpage); -- Set up viewport and window @@ -84,7 +87,11 @@ end loop; end loop; - Write_Text_Viewport("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols"); + if l < 2 then + Write_Text_Viewport("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols (compact)"); + else + Write_Text_Viewport("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols (extended)"); + end if; end loop; End_PLplot; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2010-07-23 05:20:26
|
Revision: 11099 http://plplot.svn.sourceforge.net/plplot/?rev=11099&view=rev Author: airwin Date: 2010-07-23 05:20:18 +0000 (Fri, 23 Jul 2010) Log Message: ----------- Previous commit by Jerry removed all configurable items from Ada examples source files so that the configure of those source files got turned into a copy. Strip out this configure=copy for the Ada examples source files and adjust the Ada examples build accordingly for the changed directory for the examples source. N.B. the result passes the "make test_noninteractive" test for the build tree, and that same test for the installed examples with both the traditional Makefile+pkg-config approach for building and testing those examples as well as the more modern CMake-based approach for building and testing those examples. So all seems well for all builds and tests of the Ada bindings and examples with the new non-configured approach. N.B. One further known change is planned for the website generation to adjust for the new location of the Ada source files (in the source tree rather than configured files in the build tree). Modified Paths: -------------- trunk/examples/ada/CMakeLists.txt Added Paths: ----------- trunk/examples/ada/x01a.adb trunk/examples/ada/x02a.adb trunk/examples/ada/x03a.adb trunk/examples/ada/x04a.adb trunk/examples/ada/x05a.adb trunk/examples/ada/x06a.adb trunk/examples/ada/x07a.adb trunk/examples/ada/x08a.adb trunk/examples/ada/x09a.adb trunk/examples/ada/x10a.adb trunk/examples/ada/x11a.adb trunk/examples/ada/x12a.adb trunk/examples/ada/x13a.adb trunk/examples/ada/x14a.adb trunk/examples/ada/x15a.adb trunk/examples/ada/x16a.adb trunk/examples/ada/x17a.adb trunk/examples/ada/x18a.adb trunk/examples/ada/x19a.adb trunk/examples/ada/x20a.adb trunk/examples/ada/x21a.adb trunk/examples/ada/x22a.adb trunk/examples/ada/x23a.adb trunk/examples/ada/x24a.adb trunk/examples/ada/x25a.adb trunk/examples/ada/x26a.adb trunk/examples/ada/x27a.adb trunk/examples/ada/x28a.adb trunk/examples/ada/x29a.adb trunk/examples/ada/x30a.adb trunk/examples/ada/x31a.adb trunk/examples/ada/xthick01a.adb trunk/examples/ada/xthick02a.adb trunk/examples/ada/xthick03a.adb trunk/examples/ada/xthick04a.adb trunk/examples/ada/xthick05a.adb trunk/examples/ada/xthick06a.adb trunk/examples/ada/xthick07a.adb trunk/examples/ada/xthick08a.adb trunk/examples/ada/xthick09a.adb trunk/examples/ada/xthick10a.adb trunk/examples/ada/xthick11a.adb trunk/examples/ada/xthick12a.adb trunk/examples/ada/xthick13a.adb trunk/examples/ada/xthick14a.adb trunk/examples/ada/xthick15a.adb trunk/examples/ada/xthick16a.adb trunk/examples/ada/xthick17a.adb trunk/examples/ada/xthick18a.adb trunk/examples/ada/xthick19a.adb trunk/examples/ada/xthick20a.adb trunk/examples/ada/xthick21a.adb trunk/examples/ada/xthick22a.adb trunk/examples/ada/xthick23a.adb trunk/examples/ada/xthick24a.adb trunk/examples/ada/xthick25a.adb trunk/examples/ada/xthick26a.adb trunk/examples/ada/xthick27a.adb trunk/examples/ada/xthick28a.adb trunk/examples/ada/xthick29a.adb trunk/examples/ada/xthick30a.adb trunk/examples/ada/xthick31a.adb Removed Paths: ------------- trunk/examples/ada/x01a.adb.cmake trunk/examples/ada/x02a.adb.cmake trunk/examples/ada/x03a.adb.cmake trunk/examples/ada/x04a.adb.cmake trunk/examples/ada/x05a.adb.cmake trunk/examples/ada/x06a.adb.cmake trunk/examples/ada/x07a.adb.cmake trunk/examples/ada/x08a.adb.cmake trunk/examples/ada/x09a.adb.cmake trunk/examples/ada/x10a.adb.cmake trunk/examples/ada/x11a.adb.cmake trunk/examples/ada/x12a.adb.cmake trunk/examples/ada/x13a.adb.cmake trunk/examples/ada/x14a.adb.cmake trunk/examples/ada/x15a.adb.cmake trunk/examples/ada/x16a.adb.cmake trunk/examples/ada/x17a.adb.cmake trunk/examples/ada/x18a.adb.cmake trunk/examples/ada/x19a.adb.cmake trunk/examples/ada/x20a.adb.cmake trunk/examples/ada/x21a.adb.cmake trunk/examples/ada/x22a.adb.cmake trunk/examples/ada/x23a.adb.cmake trunk/examples/ada/x24a.adb.cmake trunk/examples/ada/x25a.adb.cmake trunk/examples/ada/x26a.adb.cmake trunk/examples/ada/x27a.adb.cmake trunk/examples/ada/x28a.adb.cmake trunk/examples/ada/x29a.adb.cmake trunk/examples/ada/x30a.adb.cmake trunk/examples/ada/x31a.adb.cmake trunk/examples/ada/xthick01a.adb.cmake trunk/examples/ada/xthick02a.adb.cmake trunk/examples/ada/xthick03a.adb.cmake trunk/examples/ada/xthick04a.adb.cmake trunk/examples/ada/xthick05a.adb.cmake trunk/examples/ada/xthick06a.adb.cmake trunk/examples/ada/xthick07a.adb.cmake trunk/examples/ada/xthick08a.adb.cmake trunk/examples/ada/xthick09a.adb.cmake trunk/examples/ada/xthick10a.adb.cmake trunk/examples/ada/xthick11a.adb.cmake trunk/examples/ada/xthick12a.adb.cmake trunk/examples/ada/xthick13a.adb.cmake trunk/examples/ada/xthick14a.adb.cmake trunk/examples/ada/xthick15a.adb.cmake trunk/examples/ada/xthick16a.adb.cmake trunk/examples/ada/xthick17a.adb.cmake trunk/examples/ada/xthick18a.adb.cmake trunk/examples/ada/xthick19a.adb.cmake trunk/examples/ada/xthick20a.adb.cmake trunk/examples/ada/xthick21a.adb.cmake trunk/examples/ada/xthick22a.adb.cmake trunk/examples/ada/xthick23a.adb.cmake trunk/examples/ada/xthick24a.adb.cmake trunk/examples/ada/xthick25a.adb.cmake trunk/examples/ada/xthick26a.adb.cmake trunk/examples/ada/xthick27a.adb.cmake trunk/examples/ada/xthick28a.adb.cmake trunk/examples/ada/xthick29a.adb.cmake trunk/examples/ada/xthick30a.adb.cmake trunk/examples/ada/xthick31a.adb.cmake Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2010-07-23 05:07:44 UTC (rev 11098) +++ trunk/examples/ada/CMakeLists.txt 2010-07-23 05:20:18 UTC (rev 11099) @@ -93,11 +93,7 @@ set(ada_SRCS) foreach(STRING_INDEX ${ada_STRING_INDICES}) set(SOURCE_FILE x${STRING_INDEX}a.adb) - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} - ) - list(APPEND ada_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE}) + list(APPEND ada_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}) endforeach(STRING_INDEX ${ada_STRING_INDICES}) install(FILES ${ada_SRCS} DESTINATION ${DATA_DIR}/examples/ada) @@ -135,7 +131,7 @@ # CMake.) if(CORE_BUILD) - set(adalinkflags "-aI${CMAKE_BINARY_DIR}/examples/ada -aI${CMAKE_SOURCE_DIR}/bindings/ada -aL${CMAKE_BINARY_DIR}/bindings/ada/CMakeFiles/plplotada${LIB_TAG}.dir") + set(adalinkflags "-aI${CMAKE_SOURCE_DIR}/examples/ada -aI${CMAKE_SOURCE_DIR}/bindings/ada -aL${CMAKE_BINARY_DIR}/bindings/ada/CMakeFiles/plplotada${LIB_TAG}.dir") else(CORE_BUILD) set(adalinkflags "-aI${CMAKE_SOURCE_DIR}/ada -aI${ADA_INCLUDE_DIR} -aL${ADA_LIB_DIR}") endif(CORE_BUILD) @@ -143,13 +139,8 @@ foreach(STRING_INDEX ${ada_STRING_INDICES}) set(TARGET_NAME x${STRING_INDEX}a) set(SOURCE_FILE x${STRING_INDEX}a.adb) + set(adasrcfile ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}) - if(CORE_BUILD) - set(adasrcfile ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE}) - else(CORE_BUILD) - set(adasrcfile ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}) - endif(CORE_BUILD) - # Note due to limitations of the Ada language support for CMake, # the nominal source file for add_executable is compiled (which is # why a real file has to be specified), but otherwise it is Copied: trunk/examples/ada/x01a.adb (from rev 11096, trunk/examples/ada/x01a.adb.cmake) =================================================================== --- trunk/examples/ada/x01a.adb (rev 0) +++ trunk/examples/ada/x01a.adb 2010-07-23 05:20:18 UTC (rev 11099) @@ -0,0 +1,177 @@ +-- $Id$ + +-- Simple line plot and multiple windows demo. + +-- Copyright (C) 2007 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; +use + Ada.Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; + + + +procedure x01a is + xs, ys : Real_Vector (0 .. 5); + xscale, yscale, xoff, yoff : Long_Float; + fontset : Integer := 1; + notes : String := "Make sure you get it right!"; + + procedure plot1 is + xmin, xmax, ymin, ymax : Long_Float; + x, y : Real_Vector (0 .. 59); + begin + for i in x'Range loop + x(i) := xoff + xscale * Long_Float(i + 1) / Long_Float(x'Length); + y(i) := yoff + yscale * x(i)**2.0; + end loop; + + xmin := x(x'First); + xmax := x(x'Last); + ymin := y(y'First); + ymax := y(y'Last); + for i in xs'Range loop + xs(i) := x(i * 10 + 3); + ys(i) := y(i * 10 + 3); + end loop; + + -- Set up the viewport and window using plenv. The range in X is + -- 0.0 to 6.0, and the range in Y is 0.0 to 30.0. The axes are + -- scaled separately (just = 0), and we just draw a labelled + -- box (axis = 0). + plcol0(1); + plenv(xmin, xmax, ymin, ymax, 0, 0); + plcol0(2); + pllab("(x)", "(y)", "#frPLplot Example 1 - y=x#u2"); + + -- Plot the data points + plcol0(4); + plpoin(xs, ys, 9); + + -- Draw the line through the data + plcol0(3); + plline(x, y); + end plot1; + + + procedure plot2 is + x, y : Real_Vector (0 .. 99); + begin + -- Set up the viewport and window using PLENV. The range in X is -2.0 to + -- 10.0, and the range in Y is -0.4 to 2.0. The axes are scaled separately + -- (just = 0), and we draw a box with axes (axis = 1). + plcol0(1); + plenv(-2.0, 10.0, -0.4, 1.2, 0, 1); + plcol0(2); + pllab("(x)", "sin(x)/x", "#frPLplot Example 1 - Sinc Function"); + + -- Fill up the arrays + for i in x'Range loop + x(i) := (Long_Float(i) - 19.0) / 6.0; + y(i) := 1.0; + if x(i) /= 0.0 then + y(i) := sin(x(i)) / x(i); + end if; + end loop; + + -- Draw the line + plcol0(3); + plwid(2); + plline(x, y); + plwid(1); + end plot2; + + + procedure plot3 is + x, y : Real_Vector (0 .. 100); + space1, mark1 : Integer_Array_1D(1 .. 1) := (others => 1500); + begin + pladv(0); + + -- Use standard viewport, and define X range from 0 to 360 degrees, + -- Y range from -1.2 to 1.2. + plvsta; + plwind(0.0, 360.0, -1.2, 1.2); + + -- Draw a box with ticks spaced 60 degrees apart in X, and 0.2 in Y. + plcol0(1); + plbox("bcnst", 60.0, 2, "bcnstv", 0.2, 2); + + -- Superimpose a dashed line grid, with 1.5 mm marks and spaces. + -- plstyl expects a pointer! (-- Not Ada.) + plstyl(mark1, space1); + plcol0(2); + plbox("g", 30.0, 0, "g", 0.2, 0); + plstyl(Default_Continuous_Line); + + plcol0(3); + pllab("Angle (degrees)", "sine", "#frPLplot Example 1 - Sine function"); + + for i in x'Range loop + x(i) := 3.6 * Long_Float(i); + y(i) := sin(x(i) * pi / 180.0); + end loop; + + plcol0(4); + plline(x, y); + end plot3; + +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Get version number, just for kicks + Put_Line("PLplot library version: " & plgver); + + -- Initialize plplot + -- Divide page into 2x2 plots unless user overrides + plstar(2, 2); + + -- Set up the data + -- Original case + xscale := 6.0; + yscale := 1.0; + xoff := 0.0; + yoff := 0.0; + + -- Do a plot + plot1; + + -- Set up the data + xscale := 1.0; + yscale := 0.0014; + yoff := 0.0185; + + -- Do a plot + plsyax(5, 0); + plot1; + plot2; + plot3; + + -- Don't forget to call PLEND to finish off! + plend; +end x01a; Deleted: trunk/examples/ada/x01a.adb.cmake =================================================================== --- trunk/examples/ada/x01a.adb.cmake 2010-07-23 05:07:44 UTC (rev 11098) +++ trunk/examples/ada/x01a.adb.cmake 2010-07-23 05:20:18 UTC (rev 11099) @@ -1,177 +0,0 @@ --- $Id$ - --- Simple line plot and multiple windows demo. - --- Copyright (C) 2007 Jerry Bauck - --- This file is part of PLplot. - --- PLplot is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Library Public License as published --- by the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. - --- PLplot is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Library General Public License for more details. - --- You should have received a copy of the GNU Library General Public License --- along with PLplot; if not, write to the Free Software --- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -with - Ada.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; -use - Ada.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; - - - -procedure x01a is - xs, ys : Real_Vector (0 .. 5); - xscale, yscale, xoff, yoff : Long_Float; - fontset : Integer := 1; - notes : String := "Make sure you get it right!"; - - procedure plot1 is - xmin, xmax, ymin, ymax : Long_Float; - x, y : Real_Vector (0 .. 59); - begin - for i in x'Range loop - x(i) := xoff + xscale * Long_Float(i + 1) / Long_Float(x'Length); - y(i) := yoff + yscale * x(i)**2.0; - end loop; - - xmin := x(x'First); - xmax := x(x'Last); - ymin := y(y'First); - ymax := y(y'Last); - for i in xs'Range loop - xs(i) := x(i * 10 + 3); - ys(i) := y(i * 10 + 3); - end loop; - - -- Set up the viewport and window using plenv. The range in X is - -- 0.0 to 6.0, and the range in Y is 0.0 to 30.0. The axes are - -- scaled separately (just = 0), and we just draw a labelled - -- box (axis = 0). - plcol0(1); - plenv(xmin, xmax, ymin, ymax, 0, 0); - plcol0(2); - pllab("(x)", "(y)", "#frPLplot Example 1 - y=x#u2"); - - -- Plot the data points - plcol0(4); - plpoin(xs, ys, 9); - - -- Draw the line through the data - plcol0(3); - plline(x, y); - end plot1; - - - procedure plot2 is - x, y : Real_Vector (0 .. 99); - begin - -- Set up the viewport and window using PLENV. The range in X is -2.0 to - -- 10.0, and the range in Y is -0.4 to 2.0. The axes are scaled separately - -- (just = 0), and we draw a box with axes (axis = 1). - plcol0(1); - plenv(-2.0, 10.0, -0.4, 1.2, 0, 1); - plcol0(2); - pllab("(x)", "sin(x)/x", "#frPLplot Example 1 - Sinc Function"); - - -- Fill up the arrays - for i in x'Range loop - x(i) := (Long_Float(i) - 19.0) / 6.0; - y(i) := 1.0; - if x(i) /= 0.0 then - y(i) := sin(x(i)) / x(i); - end if; - end loop; - - -- Draw the line - plcol0(3); - plwid(2); - plline(x, y); - plwid(1); - end plot2; - - - procedure plot3 is - x, y : Real_Vector (0 .. 100); - space1, mark1 : Integer_Array_1D(1 .. 1) := (others => 1500); - begin - pladv(0); - - -- Use standard viewport, and define X range from 0 to 360 degrees, - -- Y range from -1.2 to 1.2. - plvsta; - plwind(0.0, 360.0, -1.2, 1.2); - - -- Draw a box with ticks spaced 60 degrees apart in X, and 0.2 in Y. - plcol0(1); - plbox("bcnst", 60.0, 2, "bcnstv", 0.2, 2); - - -- Superimpose a dashed line grid, with 1.5 mm marks and spaces. - -- plstyl expects a pointer! (-- Not Ada.) - plstyl(mark1, space1); - plcol0(2); - plbox("g", 30.0, 0, "g", 0.2, 0); - plstyl(Default_Continuous_Line); - - plcol0(3); - pllab("Angle (degrees)", "sine", "#frPLplot Example 1 - Sine function"); - - for i in x'Range loop - x(i) := 3.6 * Long_Float(i); - y(i) := sin(x(i) * pi / 180.0); - end loop; - - plcol0(4); - plline(x, y); - end plot3; - -begin - -- Parse and process command line arguments - plparseopts(PL_PARSE_FULL); - - -- Get version number, just for kicks - Put_Line("PLplot library version: " & plgver); - - -- Initialize plplot - -- Divide page into 2x2 plots unless user overrides - plstar(2, 2); - - -- Set up the data - -- Original case - xscale := 6.0; - yscale := 1.0; - xoff := 0.0; - yoff := 0.0; - - -- Do a plot - plot1; - - -- Set up the data - xscale := 1.0; - yscale := 0.0014; - yoff := 0.0185; - - -- Do a plot - plsyax(5, 0); - plot1; - plot2; - plot3; - - -- Don't forget to call PLEND to finish off! - plend; -end x01a; Copied: trunk/examples/ada/x02a.adb (from rev 11096, trunk/examples/ada/x02a.adb.cmake) =================================================================== --- trunk/examples/ada/x02a.adb (rev 0) +++ trunk/examples/ada/x02a.adb 2010-07-23 05:20:18 UTC (rev 11099) @@ -0,0 +1,170 @@ +-- $Id$ + +-- Multiple window and color map 0 demo. + +-- Copyright (C) 2007 Alan W. Irwin + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Auxiliary, + PLplot_Traditional; + +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Auxiliary, + PLplot_Traditional; + + + +------------------------------------------------------------------------------ +-- Demonstrates multiple windows and color map 0 palette, both default and +-- user-modified. +------------------------------------------------------------------------------ + +procedure x02a is + -------------------------------------------------------------------------- + -- draw_windows + -- Draws a set of numbered boxes with colors according to cmap0 entry. + -------------------------------------------------------------------------- + + procedure draw_windows(nw, cmap0_offset : Integer) is + vmin, vmax : Long_Float; + + begin + plschr(0.0, 3.5); + plfont(4); + + for i in 0..(nw-1) loop + plcol0(i+cmap0_offset); + pladv(0); + vmin := 0.1; + vmax := 0.9; + for j in 0..2 loop + plwid(j + 1); + plvpor(vmin, vmax, vmin, vmax); + plwind(0.0, 1.0, 0.0, 1.0); + plbox("bc", 0.0, 0, "bc", 0.0, 0); + vmin := vmin + 0.1; + vmax := vmax - 0.1; + end loop; + plwid(1); + plptex(0.5, 0.5, 1.0, 0.0, 0.5, Trim(Integer'image(i), Left)); + end loop; + end draw_windows; + + -------------------------------------------------------------------------- + -- demo1 + -- Demonstrates multiple windows and default color map 0 palette. + -------------------------------------------------------------------------- + + procedure demo1 is + begin + plbop; + + -- Divide screen into 16 regions + plssub(4, 4); + draw_windows(16, 0); + pleop; + end demo1; + + -------------------------------------------------------------------------- + -- demo2 + -- Demonstrates multiple windows, user-modified color map 0 palette, and + -- HLS -> RGB translation. + -------------------------------------------------------------------------- + + procedure demo2 is + -- Set up cmap0 + -- Use 100 custom colors in addition to base 16 + r, g, b: Integer_Array_1D(0..115); + + -- Min & max lightness values + lmin : Long_Float := 0.15; + lmax : Long_Float := 0.85; + h, l, s : Long_Float; + r1, g1, b1 : Long_Float; + begin + plbop; + + -- Divide screen into 100 regions. + plssub(10, 10); + + for i in 0..99 loop + + -- Bounds on HLS, from plhlsrgb() commentary + -- hue [0., 360.] degrees + -- lightness [0., 1.] magnitude + -- saturation [0., 1.] magnitude + + -- Vary hue uniformly from left to right + h := (360.0 / 10.0 ) * Long_Float( i mod 10 ); + + -- Vary lightness uniformly from top to bottom, between min & max. + l := lmin + (lmax - lmin) * Long_Float(i / 10) / 9.0; + + -- Use max saturation. + s := 1.0; + + plhlsrgb(h, l, s, r1, g1, b1); + + -- Ada converts floats to integers by rounding while C does so by + -- truncation. There is no fool-proof way to fix that but this is pretty + -- close: Add a bit less than 1/2 to the float before converting. A good + -- number to use appears to be about 0.5 - 10^-16 which _might_ + -- be an exact fix for 64-bit floats since they have about 16 digits + -- of accuracy. + r(i+16) := Integer((r1 * 255.001) - 0.499999999999999); + g(i+16) := Integer((g1 * 255.001) - 0.499999999999999); + b(i+16) := Integer((b1 * 255.001) - 0.499999999999999); + end loop; + + -- Load default cmap0 colors into our custom set. + for i in 0..15 loop + plgcol0(i, r(i), g(i), b(i)); + end loop; + + -- Now set cmap0 all at once (faster, since fewer driver calls). + plscmap0(r, g, b); + + draw_windows(100, 16); + + pleop; + end demo2; + +begin + -- Parse and process command line arguments. + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot. + plinit; + + -- Run demos. + demo1; + demo2; + + -- Don't forget to call plend to finish off! + plend; + +end x02a; Deleted: trunk/examples/ada/x02a.adb.cmake =================================================================== --- trunk/examples/ada/x02a.adb.cmake 2010-07-23 05:07:44 UTC (rev 11098) +++ trunk/examples/ada/x02a.adb.cmake 2010-07-23 05:20:18 UTC (rev 11099) @@ -1,170 +0,0 @@ --- $Id$ - --- Multiple window and color map 0 demo. - --- Copyright (C) 2007 Alan W. Irwin - --- This file is part of PLplot. - --- PLplot is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Library Public License as published --- by the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. - --- PLplot is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Library General Public License for more details. - --- You should have received a copy of the GNU Library General Public License --- along with PLplot; if not, write to the Free Software --- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -with - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings, - Ada.Strings.Fixed, - PLplot_Auxiliary, - PLplot_Traditional; - -use - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings, - Ada.Strings.Fixed, - PLplot_Auxiliary, - PLplot_Traditional; - - - ------------------------------------------------------------------------------- --- Demonstrates multiple windows and color map 0 palette, both default and --- user-modified. ------------------------------------------------------------------------------- - -procedure x02a is - -------------------------------------------------------------------------- - -- draw_windows - -- Draws a set of numbered boxes with colors according to cmap0 entry. - -------------------------------------------------------------------------- - - procedure draw_windows(nw, cmap0_offset : Integer) is - vmin, vmax : Long_Float; - - begin - plschr(0.0, 3.5); - plfont(4); - - for i in 0..(nw-1) loop - plcol0(i+cmap0_offset); - pladv(0); - vmin := 0.1; - vmax := 0.9; - for j in 0..2 loop - plwid(j + 1); - plvpor(vmin, vmax, vmin, vmax); - plwind(0.0, 1.0, 0.0, 1.0); - plbox("bc", 0.0, 0, "bc", 0.0, 0); - vmin := vmin + 0.1; - vmax := vmax - 0.1; - end loop; - plwid(1); - plptex(0.5, 0.5, 1.0, 0.0, 0.5, Trim(Integer'image(i), Left)); - end loop; - end draw_windows; - - -------------------------------------------------------------------------- - -- demo1 - -- Demonstrates multiple windows and default color map 0 palette. - -------------------------------------------------------------------------- - - procedure demo1 is - begin - plbop; - - -- Divide screen into 16 regions - plssub(4, 4); - draw_windows(16, 0); - pleop; - end demo1; - - -------------------------------------------------------------------------- - -- demo2 - -- Demonstrates multiple windows, user-modified color map 0 palette, and - -- HLS -> RGB translation. - -------------------------------------------------------------------------- - - procedure demo2 is - -- Set up cmap0 - -- Use 100 custom colors in addition to base 16 - r, g, b: Integer_Array_1D(0..115); - - -- Min & max lightness values - lmin : Long_Float := 0.15; - lmax : Long_Float := 0.85; - h, l, s : Long_Float; - r1, g1, b1 : Long_Float; - begin - plbop; - - -- Divide screen into 100 regions. - plssub(10, 10); - - for i in 0..99 loop - - -- Bounds on HLS, from plhlsrgb() commentary - -- hue [0., 360.] degrees - -- lightness [0., 1.] magnitude - -- saturation [0., 1.] magnitude - - -- Vary hue uniformly from left to right - h := (360.0 / 10.0 ) * Long_Float( i mod 10 ); - - -- Vary lightness uniformly from top to bottom, between min & max. - l := lmin + (lmax - lmin) * Long_Float(i / 10) / 9.0; - - -- Use max saturation. - s := 1.0; - - plhlsrgb(h, l, s, r1, g1, b1); - - -- Ada converts floats to integers by rounding while C does so by - -- truncation. There is no fool-proof way to fix that but this is pretty - -- close: Add a bit less than 1/2 to the float before converting. A good - -- number to use appears to be about 0.5 - 10^-16 which _might_ - -- be an exact fix for 64-bit floats since they have about 16 digits - -- of accuracy. - r(i+16) := Integer((r1 * 255.001) - 0.499999999999999); - g(i+16) := Integer((g1 * 255.001) - 0.499999999999999); - b(i+16) := Integer((b1 * 255.001) - 0.499999999999999); - end loop; - - -- Load default cmap0 colors into our custom set. - for i in 0..15 loop - plgcol0(i, r(i), g(i), b(i)); - end loop; - - -- Now set cmap0 all at once (faster, since fewer driver calls). - plscmap0(r, g, b); - - draw_windows(100, 16); - - pleop; - end demo2; - -begin - -- Parse and process command line arguments. - plparseopts(PL_PARSE_FULL); - - -- Initialize plplot. - plinit; - - -- Run demos. - demo1; - demo2; - - -- Don't forget to call plend to finish off! - plend; - -end x02a; Copied: trunk/examples/ada/x03a.adb (from rev 11096, trunk/examples/ada/x03a.adb.cmake) =================================================================== --- trunk/examples/ada/x03a.adb (rev 0) +++ trunk/examples/ada/x03a.adb 2010-07-23 05:20:18 UTC (rev 11099) @@ -0,0 +1,112 @@ +-- $Id$ + +-- Polar plot demo. +-- Generates polar plot, with 1-1 scaling. + +-- Copyright (C) 2007 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Auxiliary, + PLplot_Traditional; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Auxiliary, + PLplot_Traditional; + + + +procedure x03a is + dtr, theta, dx, dy, r, offset : Long_Float; + x0, y0 : Real_Vector(0..360); + x, y : Real_Vector(0..360); + +begin + dtr := pi / 180.0; + for i in x0'range loop + x0(i) := cos(dtr * Long_Float(i)); + y0(i) := sin(dtr * Long_Float(i)); + end loop; + + -- Parse and process command line arguments. + plparseopts(PL_PARSE_FULL); + + -- Set orientation to portrait. Note not all device drivers + -- support this, in particular most interactive drivers do not. + plsori(Portrait); + + -- Initialize plplot + plinit; + + -- Set up viewport and window, but do not draw box. + plenv(-1.3, 1.3, -1.3, 1.3, 1, -2); + + -- Draw circles for polar grid. + for i in 1 .. 10 loop + plarc(0.0, 0.0, 0.1 * Long_Float(i), 0.1 * Long_Float(i), 0.0, 360.0, False); + end loop; + + plcol0(2); + for i in 0..11 loop + theta := 30.0 * Long_Float(i); + dx := cos(dtr * theta); + dy := sin(dtr * theta); + + -- Draw radial spokes for polar grid. + pljoin(0.0, 0.0, dx, dy); + + -- Write labels for angle. + + if theta < 9.99 then + offset := 0.45; + elsif theta < 99.9 then + offset := 0.30; + else + offset := 0.15; + end if; + + -- Slightly off zero to avoid floating point logic flips at 90 and 270 deg + if dx >= -0.00001 then + plptex(dx, dy, dx, dy, -offset, Trim(Integer'image(Integer(theta)), Left)); + else + plptex(dx, dy, -dx, -dy, 1.0 + offset, Trim(Integer'image(Integer(theta)), Left)); + end if; + end loop; + + -- Draw the graph. + for i in x'range loop + r := sin(dtr * Long_Float(5 * i)); + x(i) := x0(i) * r; + y(i) := y0(i) * r; + end loop; + plcol0(3); + plline(x, y); + + plcol0(4); + plmtex("t", 2.0, 0.5, 0.5, "#frPLplot Example 3 - r(#gh)=sin 5#gh"); + + -- Close the plot at end. + plend; +end x03a; Deleted: trunk/examples/ada/x03a.adb.cmake =================================================================== --- trunk/examples/ada/x03a.adb.cmake 2010-07-23 05:07:44 UTC (rev 11098) +++ trunk/examples/ada/x03a.adb.cmake 2010-07-23 05:20:18 UTC (rev 11099) @@ -1,112 +0,0 @@ --- $Id$ - --- Polar plot demo. --- Generates polar plot, with 1-1 scaling. - --- Copyright (C) 2007 Jerry Bauck - --- This file is part of PLplot. - --- PLplot is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Library Public License as published --- by the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. - --- PLplot is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Library General Public License for more details. - --- You should have received a copy of the GNU Library General Public License --- along with PLplot; if not, write to the Free Software --- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -with - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings, - Ada.Strings.Fixed, - PLplot_Auxiliary, - PLplot_Traditional; -use - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings, - Ada.Strings.Fixed, - PLplot_Auxiliary, - PLplot_Traditional; - - - -procedure x03a is - dtr, theta, dx, dy, r, offset : Long_Float; - x0, y0 : Real_Vector(0..360); - x, y : Real_Vector(0..360); - -begin - dtr := pi / 180.0; - for i in x0'range loop - x0(i) := cos(dtr * Long_Float(i)); - y0(i) := sin(dtr * Long_Float(i)); - end loop; - - -- Parse and process command line arguments. - plparseopts(PL_PARSE_FULL); - - -- Set orientation to portrait. Note not all device drivers - -- support this, in particular most interactive drivers do not. - plsori(Portrait); - - -- Initialize plplot - plinit; - - -- Set up viewport and window, but do not draw box. - plenv(-1.3, 1.3, -1.3, 1.3, 1, -2); - - -- Draw circles for polar grid. - for i in 1 .. 10 loop - plarc(0.0, 0.0, 0.1 * Long_Float(i), 0.1 * Long_Float(i), 0.0, 360.0, False); - end loop; - - plcol0(2); - for i in 0..11 loop - theta := 30.0 * Long_Float(i); - dx := cos(dtr * theta); - dy := sin(dtr * theta); - - -- Draw radial spokes for polar grid. - pljoin(0.0, 0.0, dx, dy); - - -- Write labels for angle. - - if theta < 9.99 then - offset := 0.45; - elsif theta < 99.9 then - offset := 0.30; - else - offset := 0.15; - end if; - - -- Slightly off zero to avoid floating point logic flips at 90 and 270 deg - if dx >= -0.00001 then - plptex(dx, dy, dx, dy, -offset, Trim(Integer'image(Integer(theta)), Left)); - else - plptex(dx, dy, -dx, -dy, 1.0 + offset, Trim(Integer'image(Integer(theta)), Left)); - end if; - end loop; - - -- Draw the graph. - for i in x'range loop - r := sin(dtr * Long_Float(5 * i)); - x(i) := x0(i) * r; - y(i) := y0(i) * r; - end loop; - plcol0(3); - plline(x, y); - - plcol0(4); - plmtex("t", 2.0, 0.5, 0.5, "#frPLplot Example 3 - r(#gh)=sin 5#gh"); - - -- Close the plot at end. - plend; -end x03a; Copied: trunk/examples/ada/x04a.adb (from rev 11096, trunk/examples/ada/x04a.adb.cmake) =================================================================== --- trunk/examples/ada/x04a.adb (rev 0) +++ trunk/examples/ada/x04a.adb 2010-07-23 05:20:18 UTC (rev 11099) @@ -0,0 +1,101 @@ +-- $Id$ +-- +-- Log plot demo. + +-- Copyright (C) 2007 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; + + + +procedure x04a is + + procedure plot1(Plot_Type : Integer) is + freql, ampl, phase : Real_Vector(0 .. 100); + f0, freq : Long_Float; + begin + pladv(0); + f0 := 1.0; + for i in freql'range loop + freql(i) := -2.0 + Long_Float(i) / 20.0; + freq := 10.0 ** freql(i); + ampl(i) := 20.0 * log(1.0 / sqrt(1.0 + (freq / f0) ** 2.0), 10.0); + phase(i) := -(180.0 / pi) * arctan(freq / f0); + end loop; + + plvpor(0.15, 0.85, 0.1, 0.9); + plwind(-2.0, 3.0, -80.0, 0.0); + + -- Try different axis and labelling styles. + plcol0(1); + + if Plot_Type = 0 then + plbox("bclnst", 0.0, 0, "bnstv", 0.0, 0); + elsif Plot_Type = 1 then + plbox("bcfghlnst", 0.0, 0, "bcghnstv", 0.0, 0); + end if; + + -- Plot ampl vs freq + plcol0(2); + plline(freql, ampl); + plcol0(1); + plptex(1.6, -30.0, 1.0, -20.0, 0.5, "-20 dB/decade"); + + -- Put labels on + plcol0(1); + plmtex("b", 3.2, 0.5, 0.5, "Frequency"); + plmtex("t", 2.0, 0.5, 0.5, "Single Pole Low-Pass Filter"); + plcol0(2); + plmtex("l", 5.0, 0.5, 0.5, "Amplitude (dB)"); + + -- For the gridless case, put phase vs freq on same plot + if Plot_Type = 0 then + plcol0(1); + plwind(-2.0, 3.0, -100.0, 0.0); + plbox("", 0.0, 0, "cmstv", 30.0, 3); + plcol0(3); + plline(freql, phase); + plcol0(3); + plmtex("r", 5.0, 0.5, 0.5, "Phase shift (degrees)"); + end if; + end plot1; + +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + plfont(2); + + -- Make log plots using two different styles. + plot1(0); + plot1(1); + + plend; +end x04a; Deleted: trunk/examples/ada/x04a.adb.cmake =================================================================== --- trunk/examples/ada/x04a.adb.cmake 2010-07-23 05:07:44 UTC (rev 11098) +++ trunk/examples/ada/x04a.adb.cmake 2010-07-23 05:20:18 UTC (rev 11099) @@ -1,101 +0,0 @@ --- $Id$ --- --- Log plot demo. - --- Copyright (C) 2007 Jerry Bauck - --- This file is part of PLplot. - --- PLplot is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Library Public License as published --- by the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. - --- PLplot is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Library General Public License for more details. - --- You should have received a copy of the GNU Library General Public License --- along with PLplot; if not, write to the Free Software --- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -with - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; -use - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; - - - -procedure x04a is - - procedure plot1(Plot_Type : Integer) is - freql, ampl, phase : Real_Vector(0 .. 100); - f0, freq : Long_Float; - begin - pladv(0); - f0 := 1.0; - for i in freql'range loop - freql(i) := -2.0 + Long_Float(i) / 20.0; - freq := 10.0 ** freql(i); - ampl(i) := 20.0 * log(1.0 / sqrt(1.0 + (freq / f0) ** 2.0), 10.0); - phase(i) := -(180.0 / pi) * arctan(freq / f0); - end loop; - - plvpor(0.15, 0.85, 0.1, 0.9); - plwind(-2.0, 3.0, -80.0, 0.0); - - -- Try different axis and labelling styles. - plcol0(1); - - if Plot_Type = 0 then - plbox("bclnst", 0.0, 0, "bnstv", 0.0, 0); - elsif Plot_Type = 1 then - plbox("bcfghlnst", 0.0, 0, "bcghnstv", 0.0, 0); - end if; - - -- Plot ampl vs freq - plcol0(2); - plline(freql, ampl); - plcol0(1); - plptex(1.6, -30.0, 1.0, -20.0, 0.5, "-20 dB/decade"); - - -- Put labels on - plcol0(1); - plmtex("b", 3.2, 0.5, 0.5, "Frequency"); - plmtex("t", 2.0, 0.5, 0.5, "Single Pole Low-Pass Filter"); - plcol0(2); - plmtex("l", 5.0, 0.5, 0.5, "Amplitude (dB)"); - - -- For the gridless case, put phase vs freq on same plot - if Plot_Type = 0 then - plcol0(1); - plwind(-2.0, 3.0, -100.0, 0.0); - plbox("", 0.0, 0, "cmstv", 30.0, 3); - plcol0(3); - plline(freql, phase); - plcol0(3); - plmtex("r", 5.0, 0.5, 0.5, "Phase shift (degrees)"); - end if; - end plot1; - -begin - -- Parse and process command line arguments - plparseopts(PL_PARSE_FULL); - - -- Initialize plplot - plinit; - plfont(2); - - -- Make log plots using two different styles. - plot1(0); - plot1(1); - - plend; -end x04a; Copied: trunk/examples/ada/x05a.adb (from rev 11096, trunk/examples/ada/x05a.adb.cmake) =================================================================== --- trunk/examples/ada/x05a.adb (rev 0) +++ trunk/examples/ada/x05a.adb 2010-07-23 05:20:18 UTC (rev 11099) @@ -0,0 +1,60 @@ +-- $Id$ + +-- Histogram demo. +-- Draws a histogram from sample data. + +-- Copyright (C) 2007 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; + + + +procedure x05a is + NPTS : constant Integer := 2047; + data : Real_Vector(0 .. NPTS - 1); + delt : Long_Float; -- delta is a reserved word in Ada. +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + -- Fill up data points + delt := 2.0 * pi / Long_Float(NPTS); + for i in data'range loop + data(i) := sin(Long_Float(i) * delt); + end loop; + + plcol0(1); + plhist(data, -1.1, 1.1, 44, 0); + plcol0(2); + pllab("#frValue", "#frFrequency", + "#frPLplot Example 5 - Probability function of Oscillator"); + plend; +end x05a; Deleted: trunk/examples/ada/x05a.adb.cmake =================================================================== --- trunk/examples/ada/x05a.adb.cmake 2010-07-23 05:07:44 UTC (rev 11098) +++ trunk/examples/ada/x05a.adb.cmake 2010-07-23 05:20:18 UTC (rev 11099) @@ -1,60 +0,0 @@ --- $Id$ - --- Histogram demo. --- Draws a histogram from sample data. - --- Copyright (C) 2007 Jerry Bauck - --- This file is part of PLplot. - --- PLplot is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Library Public License as published --- by the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. - --- PLplot is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Library General Public License for more details. - --- You should have received a copy of the GNU Library General Public License --- along with PLplot; if not, write to the Free Software --- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -with - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; -use - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; - - - -procedure x05a is - NPTS : constant Integer := 2047; - data : Real_Vector(0 .. NPTS - 1); - delt : Long_Float; -- delta is a reserved word in Ada. -begin - -- Parse and process command line arguments - plparseopts(PL_PARSE_FULL); - - -- Initialize plplot - plinit; - - -- Fill up data points - delt := 2.0 * pi / Long_Float(NPTS); - for i in data'range loop - data(i) := sin(Long_Float(i) * delt); - end loop; - - plcol0(1); - plhist(data, -1.1, 1.1, 44, 0); - plcol0(2); - pllab("#frValue", "#frFrequency", - "#frPLplot Example 5 - Probability function of Oscillator"); - plend; -end x05a; Copied: trunk/examples/ada/x06a.adb (from rev 11096, trunk/examples/ada/x06a.adb.cmake) =================================================================== --- trunk/examples/ada/x06a.adb (rev 0) +++ trunk/examples/ada/x06a.adb 2010-07-23 05:20:18 UTC (rev 11099) @@ -0,0 +1,105 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- Displays the entire "plpoin" symbol (font) set. + +-- Copyright (C) 2010 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; +use + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; + + + +procedure x06a is + + k, maxfont : Integer; + x, y : Real_Vector(1 .. 1); + +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + for Kind_Font in 0 .. 1 loop + plfontld(Kind_Font); + if Kind_Font = 0 then + maxfont := 1; + else + maxfont := 4; + end if; + + for font in 0 .. maxfont - 1 loop + plfont(font + 1); + pladv(0); + + -- Set up viewport and window + plcol0(2); + plvpor(0.1, 1.0, 0.1, 0.9); + plwind(0.0, 1.0, 0.0, 1.3); + + -- Draw the grid using plbox + plbox("bcg", 0.1, 0, "bcg", 0.1, 0); + + -- Write the digits below the frame + plcol0(15); + for i in 0 .. 9 loop + plmtex("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); + end loop; + + k := 0; + for i in 0 .. 12 loop + + -- Write the digits to the left of the frame + plmtex("lv", 1.0, (1.0 - (2.0 * Long_Float(i) + 1.0) / 26.0), 1.0, Trim(Integer'image(10 * i), Left)); + for j in 0 .. 9 loop + x(1) := 0.1 * Long_Float(j) + 0.05; + y(1) := 1.25 - 0.1 * Long_Float(i); + + -- Display the symbols (plpoin expects that x and y are arrays so + -- pass pointers) + if k < 128 then + plpoin(x, y, k); + end if; + k := k + 1; + end loop; + end loop; + + if Kind_Font = 0 then + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols (compact)"); + else + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols (extended)"); + end if; + end loop; -- font + end loop; -- Kind_Font + plend; + +end x06a; Deleted: trunk/examples/ada/x06a.adb.cmake =================================================================== --- trunk/examples/ada/x06a.adb.cmake 2010-07-23 05:07:44 UTC (rev 11098) +++ trunk/examples/ada/x06a.adb.cmake 2010-07-23 05:20:18 UTC (rev 11099) @@ -1,105 +0,0 @@ --- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ - --- Displays the entire "plpoin" symbol (font) set. - --- Copyright (C) 2010 Jerry Bauck - --- This file is part of PLplot. - --- PLplot is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Library Public License as published --- by the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. - --- PLplot is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Library General Public License for more details. - --- You should have received a copy of the GNU Library General Public License --- along with PLplot; if not, write to the Free Software --- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -with - Ada.Strings, - Ada.Strings.Fixed, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; -use - Ada.Strings, - Ada.Strings.Fixed, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; - - - -procedure x06a is - - k, maxfont : Integer; - x, y : Real_Vector(1 .. 1); - -begin - -- Parse and process command line arguments - plparseopts(PL_PARSE_FULL); - - -- Initialize plplot - plinit; - - for Kind_Font in 0 .. 1 loop - plfontld(Kind_Font); - if Kind_Font = 0 then - maxfont := 1; - else - maxfont := 4; - end if; - - for font in 0 .. maxfont - 1 loop - plfont(font + 1); - pladv(0); - - -- Set up viewport and window - plcol0(2); - plvpor(0.1, 1.0, 0.1, 0.9); - plwind(0.0, 1.0, 0.0, 1.3); - - -- Draw the grid using plbox - plbox("bcg", 0.1, 0, "bcg", 0.1, 0); - - -- Write the digits below the frame - plcol0(15); - for i in 0 .. 9 loop - plmtex("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); - end loop; - - k := 0; - for i in 0 .. 12 loop - - -- Write the digits to the left of the frame - plmtex("lv", 1.0, (1.0 - (2.0 * Long_Float(i) + 1.0) / 26.0), 1.0, Trim(Integer'image(10 * i), Left)); - for j in 0 .. 9 loop - x(1) := 0.1 * Long_Float(j) + 0.05; - y(1) := 1.25 - 0.1 * Long_Float(i); - - -- Display the symbols (plpoin expects that x and y are arrays so - -- pass pointers) - if k < 128 then - plpoin(x, y, k); - end if; - k := k + 1; - end loop; - end loop; - - if Kind_Font = 0 then - plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols (compact)"); - else - plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols (extended)"); - end if; - end loop; -- font - end loop; -- Kind_Font - plend; - -end x06a; Copied: trunk/examples/ada/x07a.adb (from rev 11096, trunk/examples/ada/x07a.adb.cmake) =================================================================== --- trunk/examples/ada/x07a.adb (rev 0) +++ trunk/examples/ada/x07a.adb 2010-07-23 05:20:18 UTC (rev 11099) @@ -0,0 +1,98 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- Font demo. + +-- Copyright (C) 2010 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; +use + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Auxiliary, + PLplot_Traditional; + + + +procedure x07a is + + k : Integer; + x, y : Real_Vector(1 .. 1); + base : array(0 .. 19) of Integer := (0, 100, 0, 100, 200, 500, 600, 700, 800, + 900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900); + +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + plfontld(0); + for l in 0 .. 19 loop + if l = 2 then + plfontld(1); + end if; + pladv(0); + + -- Set up viewport and window + plcol0(2); + plvpor(0.15, 0.95, 0.1, 0.9); + plwind(0.0, 1.0, 0.0, 1.0); + + -- Draw the grid using plbox + plbox("bcg", 0.1, 0, "bcg", 0.1, 0); + + -- Write the digits below the frame + plcol0(15); + for i in 0 .. 9 loop + plmtex("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); + end loop; + + k := 0; + for i in 0 .. 9 loop + + -- Write the digits to the left of the frame + plmtex("lv", 1.0, (0.95 - 0.1 * Long_Float(i)), 1.0, Trim(Integer'image(base(l) + 10 * i), Left)); + for j in 0 .. 9 loop + x(1) := 0.1 * Long_Float(j) + 0.05; + y(1) := 0.95 - 0.1 * Long_Float(i); + + -- Display the symbols + plsym(x, y, base(l) + k); + k := k + 1; + end loop; + end loop; + + if l < 2 then + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols (compact)"); + else + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols (extended)"); + end if; + end loop; + plend; + +end x07a; Deleted: trunk/examples/ada/x07a.adb.cmake =================================================================== --- trunk/examples/ada/x07a.adb.cmake 2010-07-23 05:07:44 UTC (rev 11098) +++ trunk/examples/ada/x07a.adb.cmake 2010-07-23 05:20:18 UTC (rev 11099) @@ -1,98 +0,0 @@ --- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ - --- Font demo. - --- Copyright (C) 2010 Jerry Bauck - --- This file is part of PLplot. - --- PLplot is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Library Public License as published --- by the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. - --- PLplot is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Library General Public License for more details. - --- You should have received a copy of the GNU Library General Public License --- along with PLplot; if not, write to the Free Software --- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -with - Ada.Strings, - Ada.Strings.Fixed, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; -use - Ada.Strings, - Ada.Strings.Fixed, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Auxiliary, - PLplot_Traditional; - - - -procedure x07a is - - k : Integer; - x, y : Real_Vector(1 .. 1); - base : array(0 .. 19) of Integer := (0, 100, 0, 100, 200, 500, 600, 700, 800, - 900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900); - -begin - -- Parse and process command line arguments - plparseopts(PL_PARSE_FULL); - - -- Initialize plplot - plinit; - - plfontld(0); - for l in 0 .. 19 loop - if l = 2 then - plfontld(1); - end if; - pladv(0); - - -- Set up viewport and window - plcol0(2); - plvpor(0.15, 0.95, 0.1, 0.9); - plwind(0.0, 1.0, 0.0, 1.0); - - -- Draw the grid using plbox - plbox("bcg", 0.1, 0, "bcg", 0.1, 0); - - -- Write the digits below the frame - plcol0(15); - for i in 0 .. 9 loop - plmtex("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5,... [truncated message content] |
From: <jb...@us...> - 2011-03-18 06:22:21
|
Revision: 11642 http://plplot.svn.sourceforge.net/plplot/?rev=11642&view=rev Author: jbauck Date: 2011-03-18 06:22:15 +0000 (Fri, 18 Mar 2011) Log Message: ----------- Ada: Update Example 4 for pllegend. Modified Paths: -------------- trunk/examples/ada/x01a.adb trunk/examples/ada/x04a.adb trunk/examples/ada/xthick01a.adb trunk/examples/ada/xthick04a.adb Modified: trunk/examples/ada/x01a.adb =================================================================== --- trunk/examples/ada/x01a.adb 2011-03-18 06:21:31 UTC (rev 11641) +++ trunk/examples/ada/x01a.adb 2011-03-18 06:22:15 UTC (rev 11642) @@ -2,7 +2,7 @@ -- Simple line plot and multiple windows demo. --- Copyright (C) 2007 Jerry Bauck +-- Copyright (C) 2007 - 2011 Jerry Bauck -- This file is part of PLplot. @@ -33,8 +33,6 @@ PLplot_Auxiliary, PLplot_Traditional; - - procedure x01a is xs, ys : Real_Vector (0 .. 5); xscale, yscale, xoff, yoff : Long_Float; Modified: trunk/examples/ada/x04a.adb =================================================================== --- trunk/examples/ada/x04a.adb 2011-03-18 06:21:31 UTC (rev 11641) +++ trunk/examples/ada/x04a.adb 2011-03-18 06:22:15 UTC (rev 11642) @@ -2,7 +2,7 @@ -- -- Log plot demo. --- Copyright (C) 2007 Jerry Bauck +-- Copyright (C) 2007 - 2011 Jerry Bauck -- This file is part of PLplot. @@ -21,18 +21,20 @@ -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA with + System, + Ada.Strings.Unbounded, Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, PLplot_Auxiliary, PLplot_Traditional; use + System, + Ada.Strings.Unbounded, Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, PLplot_Auxiliary, PLplot_Traditional; - - - + procedure x04a is procedure plot1(Plot_Type : Integer) is @@ -63,7 +65,7 @@ -- Plot ampl vs freq plcol0(2); plline(freql, ampl); - plcol0(1); + plcol0(2); plptex(1.6, -30.0, 1.0, -20.0, 0.5, "-20 dB/decade"); -- Put labels on @@ -80,11 +82,105 @@ plbox("", 0.0, 0, "cmstv", 30.0, 3); plcol0(3); plline(freql, phase); + plstring(freql, phase, "*"); plcol0(3); plmtex("r", 5.0, 0.5, 0.5, "Phase shift (degrees)"); end if; + + plscol0a(15, 32, 32, 32, 0.70); + + -- Draw the legends. + if Plot_Type = 0 then -- Make a legend with two entries. + declare + text, symbols : Legend_String_Array_Type(0 .. 1); + opt_array : Integer_Array_1D(0 .. 1); + text_colors, line_colors, line_styles, line_widths : Integer_Array_1D(0..1); + symbol_numbers, symbol_colors : Integer_Array_1D(0 .. 1); + symbol_scales : Real_Vector(0 .. 1); + legend_width, legend_height : Long_Float; + -- Dummy arrays for unused entities. C uses null arguments but we can't. + Box_Colors, Box_Patterns, Box_Line_Widths : Integer_Array_1D(0 .. 1) + := (others => 0); + Box_Scales : Real_Vector(0 .. 1):= (others => 1.0); + begin + -- First legend entry. + opt_array(0) := Legend_Line; + text_colors(0) := 2; + text(0) := To_Unbounded_String("Amplitude"); + line_colors(0) := 2; + line_styles(0) := 1; + line_widths(0) := 1; + symbol_colors(0) := 3; -- Don't care; not used. + symbol_scales(0) := 1.0; -- Don't care; not used. + symbol_numbers(0) := 4; -- Don't care; not used. + symbols(0) := To_Unbounded_String("*"); -- Don't care; not used. + -- Second legend entry. + opt_array(1) := Legend_Line + Legend_Symbol; + text_colors(1) := 3; + text(1) := To_Unbounded_String("Phase shift"); + line_colors(1) := 3; + line_styles(1) := 1; + line_widths(1) := 1; + symbol_colors(1) := 3; + symbol_scales(1) := 1.0; + symbol_numbers(1) := 4; + symbols(1) := To_Unbounded_String("*"); + + pllegend(legend_width, legend_height, + 0, Legend_Background + Legend_Bounding_Box, + 0.0, 0.0, 0.1, 15, + 1, 1, 0, 0, + opt_array, + 1.0, 1.0, 2.0, + 1.0, text_colors, text, + Box_Colors, Box_Patterns, + Box_Scales, Box_Line_Widths, + line_colors, line_styles, line_widths, + symbol_colors, symbol_scales, symbol_numbers, symbols); + end; -- declare block + + elsif Plot_Type = 1 then -- Make a legend with one entry. + declare + text, symbols : Legend_String_Array_Type(0 .. 0); + opt_array : Integer_Array_1D(0 .. 0); + text_colors, line_colors, line_styles, line_widths : Integer_Array_1D(0..0); + symbol_numbers, symbol_colors : Integer_Array_1D(0 .. 0); + symbol_scales : Real_Vector(0 .. 0); + legend_width, legend_height : Long_Float; + -- Dummy arrays for unused entities. C uses null arguments but we can't. + Box_Colors, Box_Patterns, Box_Line_Widths : Integer_Array_1D(0 .. 0); + Box_Scales : Real_Vector(0 .. 0); + begin + -- First legend entry. + opt_array(0) := Legend_Line; + text_colors(0) := 2; + text(0) := To_Unbounded_String("Amplitude"); + line_colors(0) := 2; -- fixme Use declared constants, not integers. + line_styles(0) := 1; + line_widths(0) := 1; + symbol_colors(0) := 3; -- Don't care; not used. + symbol_scales(0) := 1.0; -- Don't care; not used. + symbol_numbers(0) := 4; -- Don't care; not used. + symbols(0) := To_Unbounded_String("*"); -- Don't care; not used. + Box_Colors(0) := 0; + Box_Patterns(0) := 0; + Box_Line_Widths(0) := 0; + Box_Scales(0) := 0.0; + + pllegend(legend_width, legend_height, + 0, Legend_Background + Legend_Bounding_Box, + 0.0, 0.0, 0.1, 15, -- fixme Replace colors and styles with names. + 1, 1, 0, 0, + opt_array, + 1.0, 1.0, 2.0, + 1.0, text_colors, text, + Box_Colors, Box_Patterns, + Box_Scales, Box_Line_Widths, + line_colors, line_styles, line_widths, + symbol_colors, symbol_scales, symbol_numbers, symbols); + end; -- declare block + end if; end plot1; - begin -- Parse and process command line arguments plparseopts(PL_PARSE_FULL); Modified: trunk/examples/ada/xthick01a.adb =================================================================== --- trunk/examples/ada/xthick01a.adb 2011-03-18 06:21:31 UTC (rev 11641) +++ trunk/examples/ada/xthick01a.adb 2011-03-18 06:22:15 UTC (rev 11642) @@ -2,7 +2,7 @@ -- Simple line plot and multiple windows demo. --- Copyright (C) 2007 Jerry Bauck +-- Copyright (C) 2007 - 2011 Jerry Bauck -- This file is part of PLplot. @@ -33,8 +33,6 @@ PLplot_Auxiliary, PLplot; - - procedure xthick01a is xs, ys : Real_Vector (0 .. 5); xscale, yscale, xoff, yoff : Long_Float; Modified: trunk/examples/ada/xthick04a.adb =================================================================== --- trunk/examples/ada/xthick04a.adb 2011-03-18 06:21:31 UTC (rev 11641) +++ trunk/examples/ada/xthick04a.adb 2011-03-18 06:22:15 UTC (rev 11642) @@ -2,7 +2,7 @@ -- -- Log plot demo. --- Copyright (C) 2007 Jerry Bauck +-- Copyright (C) 2007 - 2011 Jerry Bauck -- This file is part of PLplot. @@ -21,18 +21,20 @@ -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA with + System, + Ada.Strings.Unbounded, Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, PLplot_Auxiliary, PLplot; use + System, + Ada.Strings.Unbounded, Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, PLplot_Auxiliary, PLplot; - - procedure xthick04a is procedure plot1(Plot_Type : Integer) is @@ -63,7 +65,7 @@ -- Plot ampl vs freq Set_Pen_Color(Yellow); Draw_Curve(freql, ampl); - Set_Pen_Color(Red); + Set_Pen_Color(Yellow); Write_Text_World(1.6, -30.0, 1.0, -20.0, 0.5, "-20 dB/decade"); -- Put labels on @@ -80,9 +82,104 @@ Box_Around_Viewport("", 0.0, 0, "cmstv", 30.0, 3); Set_Pen_Color(Green); Draw_Curve(freql, phase); + Draw_String(freql, phase, "*"); Set_Pen_Color(Green); Write_Text_Viewport("r", 5.0, 0.5, 0.5, "Phase shift (degrees)"); end if; + + Set_One_Color_Map_0_And_Alpha(White, 32, 32, 32, 0.70); + + -- Draw the legends. + if Plot_Type = 0 then -- Make a legend with two entries. + declare + text, symbols : Legend_String_Array_Type(0 .. 1); + opt_array : Integer_Array_1D(0 .. 1); + text_colors, line_colors, line_styles, line_widths : Integer_Array_1D(0..1); + symbol_numbers, symbol_colors : Integer_Array_1D(0 .. 1); + symbol_scales : Real_Vector(0 .. 1); + legend_width, legend_height : Long_Float; + -- Dummy arrays for unused entities. C uses null arguments but we can't. + Box_Colors, Box_Patterns, Box_Line_Widths : Integer_Array_1D(0 .. 1) + := (others => 0); + Box_Scales : Real_Vector(0 .. 1):= (others => 1.0); + begin + -- First legend entry. + opt_array(0) := Legend_Line; + text_colors(0) := Yellow; + text(0) := To_Unbounded_String("Amplitude"); + line_colors(0) := Yellow; -- fixme Use declared constants, not integers. + line_styles(0) := 1; + line_widths(0) := 1; + symbol_colors(0) := 3; -- Don't care; not used. + symbol_scales(0) := 1.0; -- Don't care; not used. + symbol_numbers(0) := 4; -- Don't care; not used. + symbols(0) := To_Unbounded_String("*"); -- Don't care; not used. + -- Second legend entry. + opt_array(1) := Legend_Line + Legend_Symbol; + text_colors(1) := Green; + text(1) := To_Unbounded_String("Phase shift"); + line_colors(1) := Green; + line_styles(1) := 1; + line_widths(1) := 1; + symbol_colors(1) := Green; + symbol_scales(1) := 1.0; + symbol_numbers(1) := 4; + symbols(1) := To_Unbounded_String("*"); + + Create_Legend(legend_width, legend_height, + 0, Legend_Background + Legend_Bounding_Box, + 0.0, 0.0, 0.1, White, + Red, 1, 0, 0, + opt_array, + 1.0, 1.0, 2.0, + 1.0, text_colors, text, + Box_Colors, Box_Patterns, + Box_Scales, Box_Line_Widths, + line_colors, line_styles, line_widths, + symbol_colors, symbol_scales, symbol_numbers, symbols); + end; -- declare block + + elsif Plot_Type = 1 then -- Make a legend with one entry. + declare + text, symbols : Legend_String_Array_Type(0 .. 0); + opt_array : Integer_Array_1D(0 .. 0); + text_colors, line_colors, line_styles, line_widths : Integer_Array_1D(0..0); + symbol_numbers, symbol_colors : Integer_Array_1D(0 .. 0); + symbol_scales : Real_Vector(0 .. 0); + legend_width, legend_height : Long_Float; + -- Dummy arrays for unused entities. C uses null arguments but we can't. + Box_Colors, Box_Patterns, Box_Line_Widths : Integer_Array_1D(0 .. 0); + Box_Scales : Real_Vector(0 .. 0); + begin + -- First legend entry. + opt_array(0) := Legend_Line; + text_colors(0) := Yellow; + text(0) := To_Unbounded_String("Amplitude"); + line_colors(0) := Yellow; -- fixme Use declared constants, not integers. + line_styles(0) := 1; + line_widths(0) := 1; + symbol_colors(0) := 3; -- Don't care; not used. + symbol_scales(0) := 1.0; -- Don't care; not used. + symbol_numbers(0) := 4; -- Don't care; not used. + symbols(0) := To_Unbounded_String("*"); -- Don't care; not used. + Box_Colors(0) := 0; + Box_Patterns(0) := 0; + Box_Line_Widths(0) := 0; + Box_Scales(0) := 0.0; + + Create_Legend(legend_width, legend_height, + 0, Legend_Background + Legend_Bounding_Box, + 0.0, 0.0, 0.1, White, + Red, 1, 0, 0, + opt_array, + 1.0, 1.0, 2.0, + 1.0, text_colors, text, + Box_Colors, Box_Patterns, + Box_Scales, Box_Line_Widths, + line_colors, line_styles, line_widths, + symbol_colors, symbol_scales, symbol_numbers, symbols); + end; -- declare block + end if; end plot1; begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2011-04-09 08:13:02
|
Revision: 11690 http://plplot.svn.sourceforge.net/plplot/?rev=11690&view=rev Author: airwin Date: 2011-04-09 08:12:56 +0000 (Sat, 09 Apr 2011) Log Message: ----------- Set correct properties for Ada example 33. Modified Paths: -------------- trunk/examples/ada/x33a.adb trunk/examples/ada/xthick33a.adb Property Changed: ---------------- trunk/examples/ada/x33a.adb trunk/examples/ada/xthick33a.adb Modified: trunk/examples/ada/x33a.adb =================================================================== --- trunk/examples/ada/x33a.adb 2011-04-09 07:37:51 UTC (rev 11689) +++ trunk/examples/ada/x33a.adb 2011-04-09 08:12:56 UTC (rev 11690) @@ -1,6 +1,6 @@ -- -*- coding: utf-8; -*- -- --- $Id: x33c.c 11680 2011-03-27 17:57:51Z airwin $ +-- $Id$ -- -- Demonstrate most pllegend capability including unicode symbols. -- Property changes on: trunk/examples/ada/x33a.adb ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/ada/xthick33a.adb =================================================================== --- trunk/examples/ada/xthick33a.adb 2011-04-09 07:37:51 UTC (rev 11689) +++ trunk/examples/ada/xthick33a.adb 2011-04-09 08:12:56 UTC (rev 11690) @@ -1,6 +1,6 @@ -- -*- coding: utf-8; -*- -- --- $Id: x33c.c 11680 2011-03-27 17:57:51Z airwin $ +-- $Id$ -- -- Demonstrate most Create_Legend capability including unicode symbols. -- Property changes on: trunk/examples/ada/xthick33a.adb ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2011-08-05 10:23:48
|
Revision: 11860 http://plplot.svn.sourceforge.net/plplot/?rev=11860&view=rev Author: andrewross Date: 2011-08-05 10:23:37 +0000 (Fri, 05 Aug 2011) Log Message: ----------- Update ada versions of example 27 to include plarc demo. All examples now produce identical results with "make test_diff_psc" again. Modified Paths: -------------- trunk/examples/ada/x27a.adb trunk/examples/ada/xthick27a.adb Modified: trunk/examples/ada/x27a.adb =================================================================== --- trunk/examples/ada/x27a.adb 2011-08-05 08:38:34 UTC (rev 11859) +++ trunk/examples/ada/x27a.adb 2011-08-05 10:23:37 UTC (rev 11860) @@ -43,7 +43,7 @@ -- angle loop using gcd. -- N.B. N is just a place holder since it is no longer used -- (because we now have proper termination of the angle loop). - params : Real_Matrix(0 .. 8, 0 .. 3) := + params : Real_Matrix(0 .. 8, 0 .. 3) := ((21.0, 7.0, 7.0, 3.0), (21.0, 7.0, 10.0, 3.0), (21.0, -7.0, 10.0, 3.0), @@ -53,18 +53,18 @@ (20.0, 13.0, 7.0, 20.0), (20.0, 13.0, 20.0, 20.0), (20.0,-13.0, 20.0, 20.0)); - + fill : Boolean; -- To understand why spiro is written this way you need to understand the -- C code from which this was derived. In the main C program, params - -- is a two-dimensional array with 9 rows numbered 0 .. 8 and 4 columns - -- numbered 0 .. 3. When spiro is called, it is passed the _address_ of the + -- is a two-dimensional array with 9 rows numbered 0 .. 8 and 4 columns + -- numbered 0 .. 3. When spiro is called, it is passed the _address_ of the -- element of params's ith row, 0th column--nothing else. Then, inside spiro, -- the corresponding entity (also called params!) appears as a - -- _one-dimensional_ array whose 0th element shares the same address as what - -- was passed from the main program. So memory locations starting there, - -- and numbered from 0, represent the 1D array equivalent to the ith row of + -- _one-dimensional_ array whose 0th element shares the same address as what + -- was passed from the main program. So memory locations starting there, + -- and numbered from 0, represent the 1D array equivalent to the ith row of -- params in the main program. Wilma, call Barney--we're programming a -- micaprocessor here. procedure spiro(params : Real_Matrix; row : Integer; fill : Boolean) is @@ -96,10 +96,10 @@ while bb /= 0 loop t := bb; bb := aa mod bb; - aa := t; + aa := t; end loop; return aa; - end gcd; + end gcd; begin -- spiro -- Fill the coordinates. @@ -154,6 +154,38 @@ null; -- TODO end cycloid; + procedure arcs is + NSEG : constant Integer := 8; + theta : Long_Float; + dtheta : Long_Float; + a : Long_Float; + b : Long_Float; + begin + + theta := 0.0; + dtheta := 360.0/Long_Float(NSEG); + plenv( -10.0, 10.0, -10.0, 10.0, 1, 0 ); + + -- Plot segments of circle in different colors + for i in 0 .. NSEG-1 loop + plcol0( (i mod 2) + 1 ); + plarc(0.0, 0.0, 8.0, 8.0, theta, theta + dtheta, 0.0, False); + theta := theta + dtheta; + end loop; + + -- Draw several filled ellipses inside the circle at different + -- angles. + a := 3.0; + b := a * tan( (dtheta/180.0*pi)/2.0 ); + theta := dtheta/2.0; + for i in 0 .. NSEG-1 loop + plcol0( 2 - (i mod 2 ) ); + plarc( a*cos(theta/180.0*pi), a*sin(theta/180.0*pi), a, b, 0.0, 360.0, theta, True); + theta := theta + dtheta; + end loop; + + end arcs; + begin -- Parse and process command line arguments plparseopts(PL_PARSE_FULL); @@ -195,6 +227,8 @@ spiro(params, i, fill); end loop; + arcs; + -- Don't forget to call plend to finish off! plend; end x27a; Modified: trunk/examples/ada/xthick27a.adb =================================================================== --- trunk/examples/ada/xthick27a.adb 2011-08-05 08:38:34 UTC (rev 11859) +++ trunk/examples/ada/xthick27a.adb 2011-08-05 10:23:37 UTC (rev 11860) @@ -43,7 +43,7 @@ -- angle loop using gcd. -- N.B. N is just a place holder since it is no longer used -- (because we now have proper termination of the angle loop). - params : Real_Matrix(0 .. 8, 0 .. 3) := + params : Real_Matrix(0 .. 8, 0 .. 3) := ((21.0, 7.0, 7.0, 3.0), (21.0, 7.0, 10.0, 3.0), (21.0, -7.0, 10.0, 3.0), @@ -58,13 +58,13 @@ -- To understand why spiro is written this way you need to understand the -- C code from which this was derived. In the main C program, params - -- is a two-dimensional array with 9 rows numbered 0 .. 8 and 4 columns - -- numbered 0 .. 3. When spiro is called, it is passed the _address_ of the + -- is a two-dimensional array with 9 rows numbered 0 .. 8 and 4 columns + -- numbered 0 .. 3. When spiro is called, it is passed the _address_ of the -- element of params's ith row, 0th column--nothing else. Then, inside spiro, -- the corresponding entity (also called params!) appears as a - -- _one-dimensional_ array whose 0th element shares the same address as what - -- was passed from the main program. So memory locations starting there, - -- and numbered from 0, represent the 1D array equivalent to the ith row of + -- _one-dimensional_ array whose 0th element shares the same address as what + -- was passed from the main program. So memory locations starting there, + -- and numbered from 0, represent the 1D array equivalent to the ith row of -- params in the main program. Wilma, call Barney--we're programming a -- micaprocessor here. procedure spiro(params : Real_Matrix; row : Integer; fill : Boolean) is @@ -96,10 +96,10 @@ while bb /= 0 loop t := bb; bb := aa mod bb; - aa := t; + aa := t; end loop; return aa; - end gcd; + end gcd; begin -- spiro -- Fill the coordinates. @@ -154,6 +154,38 @@ null; -- TODO end cycloid; + procedure arcs is + NSEG : constant Integer := 8; + theta : Long_Float; + dtheta : Long_Float; + a : Long_Float; + b : Long_Float; + begin + + theta := 0.0; + dtheta := 360.0/Long_Float(NSEG); + Set_Environment( -10.0, 10.0, -10.0, 10.0, 1, 0 ); + + -- Plot segments of circle in different colors + for i in 0 .. NSEG-1 loop + Set_Pen_Color( (i mod 2) + 1 ); + Draw_Arc(0.0, 0.0, 8.0, 8.0, theta, theta + dtheta, 0.0, False); + theta := theta + dtheta; + end loop; + + -- Draw several filled ellipses inside the circle at different + -- angles. + a := 3.0; + b := a * tan( (dtheta/180.0*pi)/2.0 ); + theta := dtheta/2.0; + for i in 0 .. NSEG-1 loop + Set_Pen_Color( 2 - (i mod 2 ) ); + Draw_Arc( a*cos(theta/180.0*pi), a*sin(theta/180.0*pi), a, b, 0.0, 360.0, theta, True); + theta := theta + dtheta; + end loop; + + end arcs; + begin -- Parse and process command line arguments Parse_Command_Line_Arguments(Parse_Full); @@ -195,6 +227,8 @@ spiro(params, i, fill); end loop; + arcs; + -- Don't forget to call End_PLplot to finish off! End_PLplot; end xthick27a; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2011-11-01 03:53:08
|
Revision: 12019 http://plplot.svn.sourceforge.net/plplot/?rev=12019&view=rev Author: jbauck Date: 2011-11-01 03:53:01 +0000 (Tue, 01 Nov 2011) Log Message: ----------- Added Ada examples 00. Added Paths: ----------- trunk/examples/ada/x00_easy_a.adb trunk/examples/ada/x00a.adb trunk/examples/ada/x00thicka.adb Added: trunk/examples/ada/x00_easy_a.adb =================================================================== --- trunk/examples/ada/x00_easy_a.adb (rev 0) +++ trunk/examples/ada/x00_easy_a.adb 2011-11-01 03:53:01 UTC (rev 12019) @@ -0,0 +1,58 @@ +-- $Id$ +-- +-- Simple demo of a 2D line plot. +-- +-- Copyright (C) 2011 Jerry Bauck +-- +-- This file is part of PLplot. +-- +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Library General Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. +-- +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +-- This program uses Ada-specific extensions to PLplot to create similar +-- results as x00a.adb and xthick00a.adb but with less effort. + +with + PLplot_Auxiliary, + PLplot; +use + PLplot_Auxiliary, + PLplot; + +procedure x00_easy_a is + N : Integer := 100; + x, y : Real_Vector(0 .. N); + x_Min, y_Min : Long_Float := 0.0; + x_Max : Long_Float := 1.0; + y_Max : Long_Float := 100.0; +begin + -- Prepare data to be plotted. + for i in x'range loop + x(i) := Long_Float(i) / Long_Float(x'length - 1); + y(i) := y_Max * x(i)**2; + end loop; + + -- -- Initialize plplot. + Initialize_PLplot; + + -- Make the plot. + Simple_Plot(x, y, + X_Label => "x", + Y_Label => "y=100 x#u2#d", + Title_Label => "Simple PLplot demo of a 2D line plot"); + + -- Close PLplot library. + End_PLplot; +end x00_easy_a; \ No newline at end of file Property changes on: trunk/examples/ada/x00_easy_a.adb ___________________________________________________________________ Added: svn:keywords + Revision Author Date Id Added: svn:eol-style + native Added: trunk/examples/ada/x00a.adb =================================================================== --- trunk/examples/ada/x00a.adb (rev 0) +++ trunk/examples/ada/x00a.adb 2011-11-01 03:53:01 UTC (rev 12019) @@ -0,0 +1,64 @@ +-- $Id$ +-- +-- Simple demo of a 2D line plot. +-- +-- Copyright (C) 2011 Jerry Bauck +-- +-- This file is part of PLplot. +-- +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Library General Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. +-- +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +-- See x00_easy_a.adb for an easier way to generate similar results using +-- Ada-specific extensions to PLplot. + +-- See x00thicka.adb for a version of this program that uses easy-to-read names. + +with + PLplot_Auxiliary, + PLplot_Traditional; +use + PLplot_Auxiliary, + PLplot_Traditional; + +procedure x00a is + N : Integer := 100; + x, y : Real_Vector(0 .. N); + x_Min, y_Min : Long_Float := 0.0; + x_Max : Long_Float := 1.0; + y_Max : Long_Float := 100.0; +begin + -- Prepare data to be plotted. + for i in x'range loop + x(i) := Long_Float(i) / Long_Float(x'length - 1); + y(i) := y_Max * x(i)**2; + end loop; + + -- Parse and process command line arguments. + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot. + plinit; + + -- Create a labelled box to hold the plot. + plenv(x_Min, x_Max, y_Min, y_Max, 0, 0); + pllab("x", "y=100 x#u2#d", "Simple PLplot demo of a 2D line plot"); + + -- Plot the data that was prepared above. + plline(x, y); + + -- Close PLplot library. + plend; +end x00a; \ No newline at end of file Property changes on: trunk/examples/ada/x00a.adb ___________________________________________________________________ Added: svn:keywords + Revision Author Date Id Added: svn:eol-style + native Added: trunk/examples/ada/x00thicka.adb =================================================================== --- trunk/examples/ada/x00thicka.adb (rev 0) +++ trunk/examples/ada/x00thicka.adb 2011-11-01 03:53:01 UTC (rev 12019) @@ -0,0 +1,69 @@ +-- $Id$ +-- +-- Simple demo of a 2D line plot. +-- +-- Copyright (C) 2011 Jerry Bauck +-- +-- This file is part of PLplot. +-- +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Library General Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. +-- +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +-- See x00_easy_a.adb for an easier way to generate similar results using +-- Ada-specific extensions to PLplot. + +-- See x00a.adb for a version of this program that uses traditional plplot names. + +with + PLplot_Auxiliary, + PLplot; +use + PLplot_Auxiliary, + PLplot; + +procedure x00thicka is + N : Integer := 100; + x, y : Real_Vector(0 .. N); + x_Min, y_Min : Long_Float := 0.0; + x_Max : Long_Float := 1.0; + y_Max : Long_Float := 100.0; +begin + -- Prepare data to be plotted. + for i in x'range loop + x(i) := Long_Float(i) / Long_Float(x'length - 1); + y(i) := y_Max * x(i)**2; + end loop; + + -- Parse and process command line arguments. + Parse_Command_Line_Arguments(PL_PARSE_FULL); + + -- Initialize plplot. + Initialize_PLplot; + + -- Create a labelled box to hold the plot. + Set_Environment(x_Min, x_Max, y_Min, y_Max, + Justification => Not_Justified, + Axis_Style => Linear_Box_Plus); + Write_Labels + (X_Label => "x", + Y_Label => "y=100 x#u2#d", + Title_Label => "Simple PLplot demo of a 2D line plot"); + + -- Plot the data that was prepared above. + Draw_Curve(x, y); + + -- Close PLplot library. + End_PLplot; +end x00thicka; \ No newline at end of file Property changes on: trunk/examples/ada/x00thicka.adb ___________________________________________________________________ Added: svn:keywords + Revision Author Date Id Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2012-01-25 12:37:46
|
Revision: 12157 http://plplot.svn.sourceforge.net/plplot/?rev=12157&view=rev Author: andrewross Date: 2012-01-25 12:37:39 +0000 (Wed, 25 Jan 2012) Log Message: ----------- Update ada versions of example 21 to follow the new form. This should complete the changes, with the exception of fortran 77 which I don't propose to update any more. Modified Paths: -------------- trunk/examples/ada/x21a.adb trunk/examples/ada/xthick21a.adb Modified: trunk/examples/ada/x21a.adb =================================================================== --- trunk/examples/ada/x21a.adb 2012-01-25 11:41:48 UTC (rev 12156) +++ trunk/examples/ada/x21a.adb 2012-01-25 12:37:39 UTC (rev 12157) @@ -164,6 +164,8 @@ -- Initialize plplot plinit; + cmap1_init; + plseed(5489); create_data(x, y, z); -- the sampled data @@ -176,8 +178,10 @@ plenv(xm, xMM, ym, yMM, 2, 0); plcol0(15); pllab("X", "Y", "The original data sampling"); - plcol0(2); - plpoin(x, y, 5); + for i in 0 .. (pts-1) loop + plcol1( (z(i)-zmin)/(zmax-zmin) ); + plstring(x(i .. i), y(i .. i), "#(727)"); + end loop; pladv(0); plssub(3, 2); @@ -261,7 +265,6 @@ clev(i) := lzm + (lzMM - lzm) / Long_Float(nl - 1) * Long_Float(i); end loop; - cmap1_init; plvpor(0.0, 1.0, 0.0, 0.9); plwind(-1.1, 0.75, -0.65, 1.20); Modified: trunk/examples/ada/xthick21a.adb =================================================================== --- trunk/examples/ada/xthick21a.adb 2012-01-25 11:41:48 UTC (rev 12156) +++ trunk/examples/ada/xthick21a.adb 2012-01-25 12:37:39 UTC (rev 12157) @@ -164,6 +164,8 @@ -- Initialize plplot Initialize_PLplot; + cmap1_init; + Random_Number_Seed(5489); create_data(x, y, z); -- the sampled data @@ -176,8 +178,10 @@ Set_Environment(xm, xMM, ym, yMM, Justified_Square_Box, Linear_Box_Plus); Set_Pen_Color(White); Write_Labels("X", "Y", "The original data sampling"); - Set_Pen_Color(Yellow); - Draw_Points(x, y, 5); + for i in 0 .. (pts-1) loop + Set_Color_Map_1( (z(i)-zmin)/(zmax-zmin) ); + Draw_String( x(i .. i), y(i .. i), "#(727)" ); + end loop; Advance_To_Subpage(Next_Subpage); Set_Number_Of_Subpages(3, 2); @@ -261,7 +265,6 @@ clev(i) := lzm + (lzMM - lzm) / Long_Float(nl - 1) * Long_Float(i); end loop; - cmap1_init; Set_Viewport_Normalized(0.0, 1.0, 0.0, 0.9); Set_Viewport_World(-1.1, 0.75, -0.65, 1.20); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2013-12-06 13:38:22
|
Revision: 12822 http://sourceforge.net/p/plplot/code/12822 Author: andrewross Date: 2013-12-06 13:38:20 +0000 (Fri, 06 Dec 2013) Log Message: ----------- Partial update to the ada versions of example 22. Still needs more work (and some changes to the ocaml bindings). Modified Paths: -------------- trunk/examples/ada/x22a.adb trunk/examples/ada/xthick22a.adb Modified: trunk/examples/ada/x22a.adb =================================================================== --- trunk/examples/ada/x22a.adb 2013-12-06 07:22:11 UTC (rev 12821) +++ trunk/examples/ada/x22a.adb 2013-12-06 13:38:20 UTC (rev 12822) @@ -84,7 +84,7 @@ --Vector plot of flow through a constricted pipe - procedure constriction is + procedure constriction(astyle : Integer) is dx, dy, x, y : Long_Float; xmin, xmax, ymin, ymax : Long_Float; Q, b, dbdx : Long_Float; @@ -112,7 +112,7 @@ cgrid2.yg(i, j) := y; b := ymax / 4.0 * (3.0 - cos(pi * x / xmax)); if abs(y) < b then - dbdx := ymax / 4.0 * sin(pi * x / xmax) * y / b; + dbdx := ymax / 4.0 * sin(pi * x / xmax) * pi / xmax * y / b; u(i, j) := Q * ymax / b; v(i, j) := dbdx * u(i, j); else @@ -123,9 +123,9 @@ end loop; plenv(xmin, xmax, ymin, ymax, 0, 0); - pllab("(x)", "(y)", "#frPLplot Example 22 - constriction"); + pllab("(x)", "(y)", "#frPLplot Example 22 - constriction (arrow style"&Integer'image(astyle)&")"); plcol0(2); - plvect(u, v, -0.5, pltr2'access, cgrid2'Address); + plvect(u, v, -1.0, pltr2'access, cgrid2'Address); plcol0(1); end constriction; @@ -249,11 +249,11 @@ -- Set arrow style using arrow_x and arrow_y then plot using these arrows. plsvect(arrow_x, arrow_y, False); - constriction; + constriction(1); -- Set arrow style using arrow2_x and arrow2_y then plot using these filled arrows. plsvect(arrow2_x, arrow2_y, True); - constriction; + constriction(2); potential; Modified: trunk/examples/ada/xthick22a.adb =================================================================== --- trunk/examples/ada/xthick22a.adb 2013-12-06 07:22:11 UTC (rev 12821) +++ trunk/examples/ada/xthick22a.adb 2013-12-06 13:38:20 UTC (rev 12822) @@ -84,7 +84,7 @@ --Vector plot of flow through a constricted pipe - procedure constriction is + procedure constriction(astyle : Integer) is dx, dy, x, y : Long_Float; xmin, xmax, ymin, ymax : Long_Float; Q, b, dbdx : Long_Float; @@ -112,7 +112,7 @@ cgrid2.yg(i, j) := y; b := ymax / 4.0 * (3.0 - cos(pi * x / xmax)); if abs(y) < b then - dbdx := ymax / 4.0 * sin(pi * x / xmax) * y / b; + dbdx := ymax / 4.0 * sin(pi * x / xmax) * pi / xmax * y / b; u(i, j) := Q * ymax / b; v(i, j) := dbdx * u(i, j); else @@ -123,9 +123,9 @@ end loop; Set_Environment(xmin, xmax, ymin, ymax, Not_Justified, Linear_Box_Plus); - Write_Labels("(x)", "(y)", "#frPLplot Example 22 - constriction"); + Write_Labels("(x)", "(y)", "#frPLplot Example 22 - constriction (arrow style"&Integer'image(astyle)&")"); Set_Pen_Color(Yellow); - Vector_Plot(u, v, -0.5, Plot_Transformation_2'access, cgrid2'Address); + Vector_Plot(u, v, -1.0, Plot_Transformation_2'access, cgrid2'Address); Set_Pen_Color(Red); end constriction; @@ -249,11 +249,11 @@ -- Set arrow style using arrow_x and arrow_y then plot using these arrows. Set_Arrow_Style_For_Vector_Plots(arrow_x, arrow_y, False); - constriction; + constriction(1); -- Set arrow style using arrow2_x and arrow2_y then plot using these filled arrows. Set_Arrow_Style_For_Vector_Plots(arrow2_x, arrow2_y, True); - constriction; + constriction(2); potential; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |