From: <ai...@us...> - 2007-06-05 14:56:41
|
Revision: 7710 http://plplot.svn.sourceforge.net/plplot/?rev=7710&view=rev Author: airwin Date: 2007-06-05 07:56:44 -0700 (Tue, 05 Jun 2007) Log Message: ----------- (AWI for Jerry Bauck) x12a.adb and xt12a.adb: Added Trim() to remove a leading space on the text labels left by the Image function for positive numbers. x12a.adb: Restored the proper (traditional) names to some subroutine calls that got messed up last patch. (AWI) x12a.adb: Red ==> 1 to completely restore traditionality. Modified Paths: -------------- trunk/examples/ada/x12a.adb trunk/examples/ada/xt12a.adb Modified: trunk/examples/ada/x12a.adb =================================================================== --- trunk/examples/ada/x12a.adb 2007-06-05 14:35:22 UTC (rev 7709) +++ trunk/examples/ada/x12a.adb 2007-06-05 14:56:44 UTC (rev 7710) @@ -24,7 +24,8 @@ Ada.Text_IO, Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, - Ada.Strings.Bounded, + Ada.Strings, + Ada.Strings.Fixed, Interfaces.C, PLplotThin, PLplot; @@ -32,7 +33,8 @@ Ada.Text_IO, Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, - Ada.Strings.Bounded, + Ada.Strings, + Ada.Strings.Fixed, Interfaces.C, PLplotThin, PLplot; @@ -50,7 +52,7 @@ y0 : Real_Vector (0 .. 9); procedure plfbox (x0, y0 : Long_Float) is - x, y : Real_Vector (0 ..3); + x, y : Real_Vector (0 .. 3); begin x(0) := x0; y(0) := 0.0; @@ -64,10 +66,10 @@ x(3) := x0 + 1.0; y(3) := 0.0; - Fill_Polygon(x, y); - Set_Color(Red); - Select_Line_Style(1); - Draw_Curve(x, y); + plfill(x'Length, x, y); + plcol0(1); + pllsty(1); + plline(x'Length, x, y); end plfbox; begin @@ -99,8 +101,10 @@ plcol0(i + 1); plpsty(0); plfbox(1980.0 + Long_Float(i), y0(i)); - plptex(Long_Float(1980 + i) + 0.5, (y0(i) + 1.0), 1.0, 0.0, 0.5, To_C(Integer'image(Integer(y0(i))))); - plmtex(To_C("b"), 1.0, (Long_Float(i + 1) * 0.1 - 0.05), 0.5, To_C(Integer'image((1980 + i)))); + plptex(Long_Float(1980 + i) + 0.5, (y0(i) + 1.0), 1.0, 0.0, 0.5, + To_C(Trim(Integer'image(Integer(y0(i))), Left))); + plmtex(To_C("b"), 1.0, (Long_Float(i + 1) * 0.1 - 0.05), 0.5, + To_C(Trim(Integer'image((1980 + i)), Left))); end loop; -- Don't forget to call plend() to finish off! Modified: trunk/examples/ada/xt12a.adb =================================================================== --- trunk/examples/ada/xt12a.adb 2007-06-05 14:35:22 UTC (rev 7709) +++ trunk/examples/ada/xt12a.adb 2007-06-05 14:56:44 UTC (rev 7710) @@ -24,14 +24,16 @@ Ada.Text_IO, Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, - Ada.Strings.Bounded, + Ada.Strings, + Ada.Strings.Fixed, PLplotThin, PLplot; use Ada.Text_IO, Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, - Ada.Strings.Bounded, + Ada.Strings, + Ada.Strings.Fixed, PLplotThin, PLplot; @@ -97,8 +99,8 @@ Set_Color(i + 1); Select_Fill_Pattern(0); plfbox((1980.0 + Long_Float(i)), y0(i)); - Write_Text_World((1980.0 + Long_Float(i) + 0.5), (y0(i) + 1.0), 1.0, 0.0, 0.5, Integer'image(Integer(y0(i)))); - Write_Text_Viewport("b", 1.0, (Long_Float(i) + 1.0) * 0.1 - 0.05, 0.5, Integer'image((1980 + i))); + Write_Text_World(1980.0 + Long_Float(i) + 0.5, y0(i) + 1.0, 1.0, 0.0, 0.5, Trim(Integer'image(Integer(y0(i))), Left)); + Write_Text_Viewport("b", 1.0, (Long_Float(i) + 1.0) * 0.1 - 0.05, 0.5, Trim(Integer'image(1980 + i), Left)); end loop; -- Don't forget to call Plot_End to finish off! This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-07-02 01:23:10
|
Revision: 7735 http://plplot.svn.sourceforge.net/plplot/?rev=7735&view=rev Author: airwin Date: 2007-07-01 18:23:13 -0700 (Sun, 01 Jul 2007) Log Message: ----------- Rename from ambiguous "t" form to "thick" form of file name. Added Paths: ----------- trunk/examples/ada/xthick01a.adb trunk/examples/ada/xthick12a.adb Removed Paths: ------------- trunk/examples/ada/xt01a.adb trunk/examples/ada/xt12a.adb Deleted: trunk/examples/ada/xt01a.adb =================================================================== --- trunk/examples/ada/xt01a.adb 2007-07-02 01:19:18 UTC (rev 7734) +++ trunk/examples/ada/xt01a.adb 2007-07-02 01:23:13 UTC (rev 7735) @@ -1,184 +0,0 @@ --- $Id$ - --- Simple line plot and multiple windows demo - --- Copyright (C) 2006 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, - Ada.Strings.Bounded, - PLplot, - PlplotThin; -use - Ada.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings.Bounded, - PLplot, - PlplotThin; - --- 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; - -procedure xt01a is - xs, ys : Real_Vector (0 .. 5); - xscale, yscale, xoff, yoff : Long_Float; - fontset : Integer := 1; - notes : String := "Make sure you get it right!"; - ver : String_80; - - 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 Set_Environment. 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). - Set_Color(Red); - Set_Environment(xmin, xmax, ymin, ymax, Not_Justified, Linear_Box_Plus); - Set_Color(Yellow); - Write_Labels("(x)", "(y)", "#frPLplot Example 1 - y=x#u2"); - - -- Plot the data points - Set_Color(Aquamarine); - Draw_Points(xs, ys, 9); - - -- Draw the line through the data - Set_Color(Green); - Draw_Curve(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). - Set_Color(Red); - Set_Environment(-2.0, 10.0, -0.4, 1.2, Not_Justified, Linear_Zero_Axes); - Set_Color(Yellow); - Write_Labels("(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 - Set_Color(Green); - Set_Pen_Width(2); - Draw_Curve(x, y); - Set_Pen_Width(1); - end plot2; - procedure plot3 is - x, y : Real_Vector (0 .. 100); - space1, mark1 : Integer_Array_1D(1 .. 1) := (others => 1500); - begin - Advance_To_Subpage(Next_SubPage); - - -- Use standard viewport, and define X range from 0 to 360 degrees, - -- Y range from -1.2 to 1.2. - Set_Viewport_Standard; - Set_Viewport_World(0.0, 360.0, -1.2, 1.2); - - -- Draw a box with ticks spaced 60 degrees apart in X, and 0.2 in Y. - Set_Color(Red); - Box_Around_Viewport("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.) - Set_Line_Style(mark1, space1); - Set_Color(Yellow); - Box_Around_Viewport("g", 30.0, 0, "g", 0.2, 0); - Set_Line_Style(Default_Continuous_Line); - - Set_Color(Green); - Write_Labels("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; - - Set_Color(Aquamarine); - Draw_Curve(x, y); - 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(PL_PARSE_FULL); - - -- Get version number, just for kicks - Put_Line("PLplot library version: " & Get_Version_Number); - - -- Initialize plplot - Initialize_Plotter; - - -- 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 - Set_Floating_Point_Display_Y(Max_Digits => 5, Field_Digits => 0); - plot1; - plot2; - plot3; - - -- Don't forget to call PLEND to finish off! - Plot_End; -end xt01a; Deleted: trunk/examples/ada/xt12a.adb =================================================================== --- trunk/examples/ada/xt12a.adb 2007-07-02 01:19:18 UTC (rev 7734) +++ trunk/examples/ada/xt12a.adb 2007-07-02 01:23:13 UTC (rev 7735) @@ -1,108 +0,0 @@ --- $Id: xt12a.adb xxxxxxxxx airwin $ - --- Bar chart demo - --- Copyright (C) 2006 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, - Ada.Strings, - Ada.Strings.Fixed, - PLplotThin, - PLplot; -use - Ada.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings, - Ada.Strings.Fixed, - PLplotThin, - PLplot; - --- 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; - ------------------------------------------------------------------------------- --- Does a simple bar chart, using color fill. If color fill is --- unavailable, pattern fill is used instead (automatic). ------------------------------------------------------------------------------- - -procedure xt12a is - y0 : Real_Vector (0 .. 9); - - procedure plfbox (x0, y0 : Long_Float) is - x, y : Real_Vector (0 ..3); - begin - x(0) := x0; - y(0) := 0.0; - - x(1) := x0; - y(1) := y0; - - x(2) := x0 + 1.0; - y(2) := y0; - - x(3) := x0 + 1.0; - y(3) := 0.0; - - Fill_Polygon(x, y); - Set_Color(Red); - Select_Line_Style(1); - Draw_Curve(x, y); - end plfbox; - -begin - -- Parse and process command line arguments. - Parse_Command_Line_Arguments(PL_PARSE_FULL); - - -- Initialize plplot. - Initialize_PLplot; - - Advance_To_Subpage(Next_Subpage); - Set_Viewport_Standard; - Set_Viewport_World(1980.0, 1990.0, 0.0, 35.0); - Box_Around_Viewport("bc", 1.0, 0, "bcnv", 10.0, 0); - Set_Color(Yellow); - Write_Labels("Year", "Widget Sales (millions)", "#frPLplot Example 12"); - - y0(0) := 5.0; - y0(1) := 15.0; - y0(2) := 12.0; - y0(3) := 24.0; - y0(4) := 28.0; - y0(5) := 30.0; - y0(6) := 20.0; - y0(7) := 8.0; - y0(8) := 12.0; - y0(9) := 3.0; - - for i in y0'range loop - Set_Color(i + 1); - Select_Fill_Pattern(0); - plfbox((1980.0 + Long_Float(i)), y0(i)); - Write_Text_World(1980.0 + Long_Float(i) + 0.5, y0(i) + 1.0, 1.0, 0.0, 0.5, Trim(Integer'image(Integer(y0(i))), Left)); - Write_Text_Viewport("b", 1.0, (Long_Float(i) + 1.0) * 0.1 - 0.05, 0.5, Trim(Integer'image(1980 + i), Left)); - end loop; - - -- Don't forget to call Plot_End to finish off! - Plot_End; -end xt12a; Copied: trunk/examples/ada/xthick01a.adb (from rev 7734, trunk/examples/ada/xt01a.adb) =================================================================== --- trunk/examples/ada/xthick01a.adb (rev 0) +++ trunk/examples/ada/xthick01a.adb 2007-07-02 01:23:13 UTC (rev 7735) @@ -0,0 +1,184 @@ +-- $Id$ + +-- Simple line plot and multiple windows demo + +-- Copyright (C) 2006 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, + Ada.Strings.Bounded, + PLplot, + PlplotThin; +use + Ada.Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings.Bounded, + PLplot, + PlplotThin; + +-- 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; + +procedure xt01a is + xs, ys : Real_Vector (0 .. 5); + xscale, yscale, xoff, yoff : Long_Float; + fontset : Integer := 1; + notes : String := "Make sure you get it right!"; + ver : String_80; + + 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 Set_Environment. 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). + Set_Color(Red); + Set_Environment(xmin, xmax, ymin, ymax, Not_Justified, Linear_Box_Plus); + Set_Color(Yellow); + Write_Labels("(x)", "(y)", "#frPLplot Example 1 - y=x#u2"); + + -- Plot the data points + Set_Color(Aquamarine); + Draw_Points(xs, ys, 9); + + -- Draw the line through the data + Set_Color(Green); + Draw_Curve(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). + Set_Color(Red); + Set_Environment(-2.0, 10.0, -0.4, 1.2, Not_Justified, Linear_Zero_Axes); + Set_Color(Yellow); + Write_Labels("(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 + Set_Color(Green); + Set_Pen_Width(2); + Draw_Curve(x, y); + Set_Pen_Width(1); + end plot2; + procedure plot3 is + x, y : Real_Vector (0 .. 100); + space1, mark1 : Integer_Array_1D(1 .. 1) := (others => 1500); + begin + Advance_To_Subpage(Next_SubPage); + + -- Use standard viewport, and define X range from 0 to 360 degrees, + -- Y range from -1.2 to 1.2. + Set_Viewport_Standard; + Set_Viewport_World(0.0, 360.0, -1.2, 1.2); + + -- Draw a box with ticks spaced 60 degrees apart in X, and 0.2 in Y. + Set_Color(Red); + Box_Around_Viewport("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.) + Set_Line_Style(mark1, space1); + Set_Color(Yellow); + Box_Around_Viewport("g", 30.0, 0, "g", 0.2, 0); + Set_Line_Style(Default_Continuous_Line); + + Set_Color(Green); + Write_Labels("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; + + Set_Color(Aquamarine); + Draw_Curve(x, y); + 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(PL_PARSE_FULL); + + -- Get version number, just for kicks + Put_Line("PLplot library version: " & Get_Version_Number); + + -- Initialize plplot + Initialize_Plotter; + + -- 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 + Set_Floating_Point_Display_Y(Max_Digits => 5, Field_Digits => 0); + plot1; + plot2; + plot3; + + -- Don't forget to call PLEND to finish off! + Plot_End; +end xt01a; Copied: trunk/examples/ada/xthick12a.adb (from rev 7734, trunk/examples/ada/xt12a.adb) =================================================================== --- trunk/examples/ada/xthick12a.adb (rev 0) +++ trunk/examples/ada/xthick12a.adb 2007-07-02 01:23:13 UTC (rev 7735) @@ -0,0 +1,108 @@ +-- $Id: xt12a.adb xxxxxxxxx airwin $ + +-- Bar chart demo + +-- Copyright (C) 2006 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, + Ada.Strings, + Ada.Strings.Fixed, + PLplotThin, + PLplot; +use + Ada.Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplotThin, + PLplot; + +-- 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; + +------------------------------------------------------------------------------ +-- Does a simple bar chart, using color fill. If color fill is +-- unavailable, pattern fill is used instead (automatic). +------------------------------------------------------------------------------ + +procedure xt12a is + y0 : Real_Vector (0 .. 9); + + procedure plfbox (x0, y0 : Long_Float) is + x, y : Real_Vector (0 ..3); + begin + x(0) := x0; + y(0) := 0.0; + + x(1) := x0; + y(1) := y0; + + x(2) := x0 + 1.0; + y(2) := y0; + + x(3) := x0 + 1.0; + y(3) := 0.0; + + Fill_Polygon(x, y); + Set_Color(Red); + Select_Line_Style(1); + Draw_Curve(x, y); + end plfbox; + +begin + -- Parse and process command line arguments. + Parse_Command_Line_Arguments(PL_PARSE_FULL); + + -- Initialize plplot. + Initialize_PLplot; + + Advance_To_Subpage(Next_Subpage); + Set_Viewport_Standard; + Set_Viewport_World(1980.0, 1990.0, 0.0, 35.0); + Box_Around_Viewport("bc", 1.0, 0, "bcnv", 10.0, 0); + Set_Color(Yellow); + Write_Labels("Year", "Widget Sales (millions)", "#frPLplot Example 12"); + + y0(0) := 5.0; + y0(1) := 15.0; + y0(2) := 12.0; + y0(3) := 24.0; + y0(4) := 28.0; + y0(5) := 30.0; + y0(6) := 20.0; + y0(7) := 8.0; + y0(8) := 12.0; + y0(9) := 3.0; + + for i in y0'range loop + Set_Color(i + 1); + Select_Fill_Pattern(0); + plfbox((1980.0 + Long_Float(i)), y0(i)); + Write_Text_World(1980.0 + Long_Float(i) + 0.5, y0(i) + 1.0, 1.0, 0.0, 0.5, Trim(Integer'image(Integer(y0(i))), Left)); + Write_Text_Viewport("b", 1.0, (Long_Float(i) + 1.0) * 0.1 - 0.05, 0.5, Trim(Integer'image(1980 + i), Left)); + end loop; + + -- Don't forget to call Plot_End to finish off! + Plot_End; +end xt12a; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-07-04 15:24:13
|
Revision: 7744 http://plplot.svn.sourceforge.net/plplot/?rev=7744&view=rev Author: airwin Date: 2007-07-04 08:24:15 -0700 (Wed, 04 Jul 2007) Log Message: ----------- Make traditional examples as close to other language examples as possible. Modified Paths: -------------- trunk/examples/ada/x01a.adb trunk/examples/ada/x10a.adb trunk/examples/ada/x12a.adb Modified: trunk/examples/ada/x01a.adb =================================================================== --- trunk/examples/ada/x01a.adb 2007-07-03 23:39:39 UTC (rev 7743) +++ trunk/examples/ada/x01a.adb 2007-07-04 15:24:15 UTC (rev 7744) @@ -72,7 +72,7 @@ pllab("(x)", "(y)", "#frPLplot Example 1 - y=x#u2"); -- Plot the data points - plcol0(Aquamarine); + plcol0(4); plpoin(xs, ys, 9); -- Draw the line through the data @@ -113,7 +113,7 @@ x, y : Real_Vector (0 .. 100); space1, mark1 : Integer_Array_1D(1 .. 1) := (others => 1500); begin - pladv(Next_SubPage); + pladv(0); -- Use standard viewport, and define X range from 0 to 360 degrees, -- Y range from -1.2 to 1.2. @@ -139,7 +139,7 @@ y(i) := sin(x(i) * pi / 180.0); end loop; - plcol0(Aquamarine); + plcol0(4); plline(x, y); end plot3; Modified: trunk/examples/ada/x10a.adb =================================================================== --- trunk/examples/ada/x10a.adb 2007-07-03 23:39:39 UTC (rev 7743) +++ trunk/examples/ada/x10a.adb 2007-07-04 15:24:15 UTC (rev 7744) @@ -45,7 +45,7 @@ -- Initialize plplot plinit; - pladv(Next_Subpage); + pladv(0); plvpor(0.0, 1.0, 0.0, 1.0); plwind(0.0, 1.0, 0.0, 1.0); plbox("bc", 0.0, 0, "bc", 0.0, 0); Modified: trunk/examples/ada/x12a.adb =================================================================== --- trunk/examples/ada/x12a.adb 2007-07-03 23:39:39 UTC (rev 7743) +++ trunk/examples/ada/x12a.adb 2007-07-04 15:24:15 UTC (rev 7744) @@ -78,7 +78,7 @@ -- Initialize plplot. plinit; - pladv(Next_Subpage); + pladv(0); plvsta; plwind(1980.0, 1990.0, 0.0, 35.0); plbox("bc", 1.0, 0, "bcnv", 10.0, 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-09-20 16:04:10
|
Revision: 7878 http://plplot.svn.sourceforge.net/plplot/?rev=7878&view=rev Author: airwin Date: 2007-09-20 09:04:08 -0700 (Thu, 20 Sep 2007) Log Message: ----------- Set property svn:keywords to Author Date Id Revision Modified Paths: -------------- trunk/examples/ada/x02a.adb trunk/examples/ada/x04a.adb trunk/examples/ada/xthick02a.adb trunk/examples/ada/xthick04a.adb trunk/examples/ada/xthick10a.adb trunk/examples/ada/xthick12a.adb Property Changed: ---------------- trunk/examples/ada/x02a.adb trunk/examples/ada/x04a.adb trunk/examples/ada/xthick02a.adb trunk/examples/ada/xthick04a.adb trunk/examples/ada/xthick10a.adb trunk/examples/ada/xthick12a.adb Modified: trunk/examples/ada/x02a.adb =================================================================== --- trunk/examples/ada/x02a.adb 2007-09-20 04:19:31 UTC (rev 7877) +++ trunk/examples/ada/x02a.adb 2007-09-20 16:04:08 UTC (rev 7878) @@ -1,4 +1,4 @@ --- $Id: xthick02a.adb xxxxx $ +-- $Id$ -- Multiple window and color map 0 demo. Property changes on: trunk/examples/ada/x02a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Modified: trunk/examples/ada/x04a.adb =================================================================== --- trunk/examples/ada/x04a.adb 2007-09-20 04:19:31 UTC (rev 7877) +++ trunk/examples/ada/x04a.adb 2007-09-20 16:04:08 UTC (rev 7878) @@ -1,4 +1,4 @@ --- $Id: x04c.c xxxxxx $ +-- $Id$ -- -- Log plot demo. Property changes on: trunk/examples/ada/x04a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Modified: trunk/examples/ada/xthick02a.adb =================================================================== --- trunk/examples/ada/xthick02a.adb 2007-09-20 04:19:31 UTC (rev 7877) +++ trunk/examples/ada/xthick02a.adb 2007-09-20 16:04:08 UTC (rev 7878) @@ -1,4 +1,4 @@ --- $Id: xthick02a.adb xxxxx $ +-- $Id$ -- Multiple window and color map 0 demo. Property changes on: trunk/examples/ada/xthick02a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Modified: trunk/examples/ada/xthick04a.adb =================================================================== --- trunk/examples/ada/xthick04a.adb 2007-09-20 04:19:31 UTC (rev 7877) +++ trunk/examples/ada/xthick04a.adb 2007-09-20 16:04:08 UTC (rev 7878) @@ -1,4 +1,4 @@ --- $Id: xthick04c.c xxxxxx $ +-- $Id$ -- -- Log plot demo. Property changes on: trunk/examples/ada/xthick04a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Modified: trunk/examples/ada/xthick10a.adb =================================================================== --- trunk/examples/ada/xthick10a.adb 2007-09-20 04:19:31 UTC (rev 7877) +++ trunk/examples/ada/xthick10a.adb 2007-09-20 16:04:08 UTC (rev 7878) @@ -1,4 +1,4 @@ --- $Id: x10a.adb 7703 2007-06-02 02:37:18Z airwin $ +-- $Id$ -- Window positioning demo Property changes on: trunk/examples/ada/xthick10a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Modified: trunk/examples/ada/xthick12a.adb =================================================================== --- trunk/examples/ada/xthick12a.adb 2007-09-20 04:19:31 UTC (rev 7877) +++ trunk/examples/ada/xthick12a.adb 2007-09-20 16:04:08 UTC (rev 7878) @@ -1,4 +1,4 @@ --- $Id: xt12a.adb xxxxxxxxx airwin $ +-- $Id$ -- Bar chart demo Property changes on: trunk/examples/ada/xthick12a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-09-22 17:55:56
|
Revision: 7882 http://plplot.svn.sourceforge.net/plplot/?rev=7882&view=rev Author: airwin Date: 2007-09-22 10:55:57 -0700 (Sat, 22 Sep 2007) Log Message: ----------- Tweak front matter. Modified Paths: -------------- trunk/examples/ada/x01a.adb trunk/examples/ada/x02a.adb trunk/examples/ada/x04a.adb trunk/examples/ada/x10a.adb trunk/examples/ada/x12a.adb trunk/examples/ada/xthick01a.adb trunk/examples/ada/xthick02a.adb trunk/examples/ada/xthick04a.adb trunk/examples/ada/xthick10a.adb trunk/examples/ada/xthick12a.adb Modified: trunk/examples/ada/x01a.adb =================================================================== --- trunk/examples/ada/x01a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/x01a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -1,8 +1,8 @@ -- $Id$ --- Simple line plot and multiple windows demo +-- Simple line plot and multiple windows demo. --- Copyright (C) 2006 Jerry Bauck +-- Copyright (C) 2007 Jerry Bauck -- This file is part of PLplot. Modified: trunk/examples/ada/x02a.adb =================================================================== --- trunk/examples/ada/x02a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/x02a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -2,7 +2,7 @@ -- Multiple window and color map 0 demo. --- Copyright (C) 2007 Alan W. Irwin +-- Copyright (C) 2007 Alan W. Irwin -- This file is part of PLplot. Modified: trunk/examples/ada/x04a.adb =================================================================== --- trunk/examples/ada/x04a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/x04a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -2,7 +2,7 @@ -- -- Log plot demo. --- Copyright (C) 2007 Jerry Bauck +-- Copyright (C) 2007 Jerry Bauck -- This file is part of PLplot. Modified: trunk/examples/ada/x10a.adb =================================================================== --- trunk/examples/ada/x10a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/x10a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -1,6 +1,6 @@ -- $Id$ --- Window positioning demo +-- Window positioning demo. -- Copyright (C) 2007 Alan W. Irwin Modified: trunk/examples/ada/x12a.adb =================================================================== --- trunk/examples/ada/x12a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/x12a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -1,8 +1,8 @@ -- $Id$ --- Bar chart demo +-- Bar chart demo. --- Copyright (C) 2006 Jerry Bauck +-- Copyright (C) 2006 Jerry Bauck -- This file is part of PLplot. Modified: trunk/examples/ada/xthick01a.adb =================================================================== --- trunk/examples/ada/xthick01a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/xthick01a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -1,8 +1,8 @@ -- $Id$ --- Simple line plot and multiple windows demo +-- Simple line plot and multiple windows demo. --- Copyright (C) 2006 Jerry Bauck +-- Copyright (C) 2007 Jerry Bauck -- This file is part of PLplot. Modified: trunk/examples/ada/xthick02a.adb =================================================================== --- trunk/examples/ada/xthick02a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/xthick02a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -2,7 +2,7 @@ -- Multiple window and color map 0 demo. --- Copyright (C) 2007 Alan W. Irwin +-- Copyright (C) 2007 Alan W. Irwin -- This file is part of PLplot. Modified: trunk/examples/ada/xthick04a.adb =================================================================== --- trunk/examples/ada/xthick04a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/xthick04a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -2,7 +2,7 @@ -- -- Log plot demo. --- Copyright (C) 2007 Jerry Bauck +-- Copyright (C) 2007 Jerry Bauck -- This file is part of PLplot. Modified: trunk/examples/ada/xthick10a.adb =================================================================== --- trunk/examples/ada/xthick10a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/xthick10a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -1,6 +1,6 @@ -- $Id$ --- Window positioning demo +-- Window positioning demo. -- Copyright (C) 2007 Alan W. Irwin Modified: trunk/examples/ada/xthick12a.adb =================================================================== --- trunk/examples/ada/xthick12a.adb 2007-09-22 17:53:54 UTC (rev 7881) +++ trunk/examples/ada/xthick12a.adb 2007-09-22 17:55:57 UTC (rev 7882) @@ -1,8 +1,8 @@ -- $Id$ --- Bar chart demo +-- Bar chart demo. --- Copyright (C) 2006 Jerry Bauck +-- Copyright (C) 2006 Jerry Bauck -- This file is part of PLplot. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-11-13 18:46:09
|
Revision: 8021 http://plplot.svn.sourceforge.net/plplot/?rev=8021&view=rev Author: airwin Date: 2007-11-13 10:46:13 -0800 (Tue, 13 Nov 2007) Log Message: ----------- Alan W. Irwin and Jerry Bauck: Add @Ada_Is_2007_With_and_Use_Numerics@ to the with-use section and make examples configurable. Modified Paths: -------------- trunk/examples/ada/CMakeLists.txt 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/x10a.adb trunk/examples/ada/x12a.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/xthick10a.adb trunk/examples/ada/xthick12a.adb Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/CMakeLists.txt 2007-11-13 18:46:13 UTC (rev 8021) @@ -38,15 +38,23 @@ if(BUILD_TEST) remove_definitions("-DHAVE_CONFIG_H") include_directories( - ${CMAKE_SOURCE_DIR}/examples/ada + ${CMAKE_BINARY_DIR}/examples/ada ${CMAKE_BINARY_DIR}/bindings/ada ) 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_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. set( ada_SRCS ${ada_SRCS} - x${STRING_INDEX}a.adb + ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} ) if(BUILD_TEST) # Note due to limitations of the Ada language support for CMake, the the @@ -58,8 +66,8 @@ # be specified from this construction (don't ask), you must specify the # directory of <TARGET>.adb with a -aI option (see below). add_executable( - x${STRING_INDEX}a - ${CMAKE_CURRENT_SOURCE_DIR}/x${STRING_INDEX}a.adb + ${TARGET_NAME} + ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} ) # The first -aI option is required to find <TARGET>.adb (see above @@ -68,11 +76,12 @@ # (That location currently works but is probably not guaranteed # indefinitely for future versions of CMake.) - set_target_properties(x${STRING_INDEX}a + set_target_properties( + ${TARGET_NAME} PROPERTIES LINK_FLAGS - "-aI${CMAKE_SOURCE_DIR}/examples/ada -aI${CMAKE_BINARY_DIR}/bindings/ada -aL${CMAKE_BINARY_DIR}/bindings/ada/CMakeFiles/plplotada${LIB_TAG}.dir" + "-aI${CMAKE_BINARY_DIR}/examples/ada -aI${CMAKE_BINARY_DIR}/bindings/ada -aL${CMAKE_BINARY_DIR}/bindings/ada/CMakeFiles/plplotada${LIB_TAG}.dir" ) - target_link_libraries(x${STRING_INDEX}a plplotada${LIB_TAG}) + target_link_libraries(${TARGET_NAME} plplotada${LIB_TAG}) endif(BUILD_TEST) endforeach(STRING_INDEX ${ada_STRING_INDICES}) Modified: trunk/examples/ada/x01a.adb =================================================================== --- trunk/examples/ada/x01a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/x01a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -36,6 +36,7 @@ -- 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@ procedure x01a is xs, ys : Real_Vector (0 .. 5); Modified: trunk/examples/ada/x02a.adb =================================================================== --- trunk/examples/ada/x02a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/x02a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -39,6 +39,7 @@ -- 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@ ------------------------------------------------------------------------------ -- Demonstrates multiple windows and color map 0 palette, both default and Modified: trunk/examples/ada/x03a.adb =================================================================== --- trunk/examples/ada/x03a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/x03a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -39,6 +39,7 @@ -- 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@ procedure x03a is dtr, theta, dx, dy, r : Long_Float; Modified: trunk/examples/ada/x04a.adb =================================================================== --- trunk/examples/ada/x04a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/x04a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -34,6 +34,7 @@ -- 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@ procedure x04a is Modified: trunk/examples/ada/x05a.adb =================================================================== --- trunk/examples/ada/x05a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/x05a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -35,6 +35,7 @@ -- 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@ procedure x05a is NPTS : constant Integer := 2047; Modified: trunk/examples/ada/x10a.adb =================================================================== --- trunk/examples/ada/x10a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/x10a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -36,6 +36,7 @@ -- 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@ procedure x10a is begin Modified: trunk/examples/ada/x12a.adb =================================================================== --- trunk/examples/ada/x12a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/x12a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -41,6 +41,7 @@ -- 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@ ------------------------------------------------------------------------------ -- Does a simple bar chart, using color fill. If color fill is Modified: trunk/examples/ada/xthick01a.adb =================================================================== --- trunk/examples/ada/xthick01a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/xthick01a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -36,6 +36,7 @@ -- 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@ procedure xthick01a is xs, ys : Real_Vector (0 .. 5); Modified: trunk/examples/ada/xthick02a.adb =================================================================== --- trunk/examples/ada/xthick02a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/xthick02a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -39,6 +39,7 @@ -- 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@ ------------------------------------------------------------------------------ -- Demonstrates multiple windows and color map 0 palette, both default and Modified: trunk/examples/ada/xthick03a.adb =================================================================== --- trunk/examples/ada/xthick03a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/xthick03a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -39,6 +39,7 @@ -- 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@ procedure xthick03a is dtr, theta, dx, dy, r : Long_Float; Modified: trunk/examples/ada/xthick04a.adb =================================================================== --- trunk/examples/ada/xthick04a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/xthick04a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -34,6 +34,7 @@ -- 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@ procedure xthick04a is Modified: trunk/examples/ada/xthick05a.adb =================================================================== --- trunk/examples/ada/xthick05a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/xthick05a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -35,6 +35,7 @@ -- 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@ procedure xthick05a is NPTS : constant Integer := 2047; Modified: trunk/examples/ada/xthick10a.adb =================================================================== --- trunk/examples/ada/xthick10a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/xthick10a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -34,6 +34,7 @@ -- 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@ procedure xthick10a is begin Modified: trunk/examples/ada/xthick12a.adb =================================================================== --- trunk/examples/ada/xthick12a.adb 2007-11-13 18:41:53 UTC (rev 8020) +++ trunk/examples/ada/xthick12a.adb 2007-11-13 18:46:13 UTC (rev 8021) @@ -40,6 +40,7 @@ -- 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@ ------------------------------------------------------------------------------ -- Does a simple bar chart, using color fill. If color fill is This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-11-13 18:58:25
|
Revision: 8022 http://plplot.svn.sourceforge.net/plplot/?rev=8022&view=rev Author: airwin Date: 2007-11-13 10:58:30 -0800 (Tue, 13 Nov 2007) Log Message: ----------- Rename all example files with a .cmake suffix to indicate they are files that will be configured with the CMake build system. (This namespace change also stops name clashes that would occur for the case where the build tree is the same as the source tree.) Modified Paths: -------------- trunk/examples/ada/CMakeLists.txt Added 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/x10a.adb.cmake trunk/examples/ada/x12a.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/xthick10a.adb.cmake trunk/examples/ada/xthick12a.adb.cmake Removed 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/x10a.adb trunk/examples/ada/x12a.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/xthick10a.adb trunk/examples/ada/xthick12a.adb Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/CMakeLists.txt 2007-11-13 18:58:30 UTC (rev 8022) @@ -46,7 +46,7 @@ set(TARGET_NAME x${STRING_INDEX}a) set(SOURCE_FILE x${STRING_INDEX}a.adb) configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_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 Deleted: trunk/examples/ada/x01a.adb =================================================================== --- trunk/examples/ada/x01a.adb 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/x01a.adb 2007-11-13 18:58:30 UTC (rev 8022) @@ -1,185 +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_Traditional, - PLplot_Auxiliary; -use - Ada.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Traditional, - PLplot_Auxiliary; - --- 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@ - -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!"; - ver : String_80; - - 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 - -- plplot initialization - - -- Divide page into 2x2 plots unless user overrides - plssub(2, 2); - - -- Parse and process command line arguments - plparseopts(PL_PARSE_FULL); - - -- Get version number, just for kicks - Put_Line("PLplot library version: " & plgver); - - -- Initialize plplot - plinit; - - -- 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/x01a.adb.cmake (from rev 8021, trunk/examples/ada/x01a.adb) =================================================================== --- trunk/examples/ada/x01a.adb.cmake (rev 0) +++ trunk/examples/ada/x01a.adb.cmake 2007-11-13 18:58:30 UTC (rev 8022) @@ -0,0 +1,185 @@ +-- $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_Traditional, + PLplot_Auxiliary; +use + Ada.Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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@ + +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!"; + ver : String_80; + + 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 + -- plplot initialization + + -- Divide page into 2x2 plots unless user overrides + plssub(2, 2); + + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Get version number, just for kicks + Put_Line("PLplot library version: " & plgver); + + -- Initialize plplot + plinit; + + -- 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/x02a.adb =================================================================== --- trunk/examples/ada/x02a.adb 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/x02a.adb 2007-11-13 18:58:30 UTC (rev 8022) @@ -1,171 +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_Traditional, - PLplot_Auxiliary; - -use - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings, - Ada.Strings.Fixed, - PLplot_Traditional, - PLplot_Auxiliary; - --- 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@ - ------------------------------------------------------------------------------- --- 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 rounds to nearest integer. We want to truncate - -- approximately like C to match that example. -0.5 produces - -- at least one -1 result (rather than zero) so we subtract - -- something with a slightly smaller absolute value. - r(i+16) := Integer((r1 * 255.0)-0.4999999); - g(i+16) := Integer((g1 * 255.0)-0.4999999); - b(i+16) := Integer((b1 * 255.0)-0.4999999); - 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/x02a.adb.cmake (from rev 8021, trunk/examples/ada/x02a.adb) =================================================================== --- trunk/examples/ada/x02a.adb.cmake (rev 0) +++ trunk/examples/ada/x02a.adb.cmake 2007-11-13 18:58:30 UTC (rev 8022) @@ -0,0 +1,171 @@ +-- $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_Traditional, + PLplot_Auxiliary; + +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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@ + +------------------------------------------------------------------------------ +-- 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 rounds to nearest integer. We want to truncate + -- approximately like C to match that example. -0.5 produces + -- at least one -1 result (rather than zero) so we subtract + -- something with a slightly smaller absolute value. + r(i+16) := Integer((r1 * 255.0)-0.4999999); + g(i+16) := Integer((g1 * 255.0)-0.4999999); + b(i+16) := Integer((b1 * 255.0)-0.4999999); + 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/x03a.adb =================================================================== --- trunk/examples/ada/x03a.adb 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/x03a.adb 2007-11-13 18:58:30 UTC (rev 8022) @@ -1,106 +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_Traditional, - PLplot_Auxiliary; -use - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings, - Ada.Strings.Fixed, - PLplot_Traditional, - PLplot_Auxiliary; - --- 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@ - -procedure x03a is - dtr, theta, dx, dy, r : 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); - - -- Initialize plplot - plinit; - - -- Set up viewport and window, but do not draw box. - plenv(-1.3, 1.3, -1.3, 1.3, 1, -2); - for i in 1..10 loop - for j in x'range loop - x(j) := 0.1 * Long_Float(i) * x0(j); - y(j) := 0.1 * Long_Float(i) * y0(j); - end loop; - - -- Draw circles for polar grid. - plline(x, y); - 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. - -- Slightly off zero to avoid floating point logic flips at 90 and 270 deg - if dx >= -0.00001 then - plptex(dx, dy, dx, dy, -0.15, Trim(Integer'image(Integer(theta)), Left)); - else - plptex(dx, dy, -dx, -dy, 1.15, 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/x03a.adb.cmake (from rev 8021, trunk/examples/ada/x03a.adb) =================================================================== --- trunk/examples/ada/x03a.adb.cmake (rev 0) +++ trunk/examples/ada/x03a.adb.cmake 2007-11-13 18:58:30 UTC (rev 8022) @@ -0,0 +1,106 @@ +-- $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_Traditional, + PLplot_Auxiliary; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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@ + +procedure x03a is + dtr, theta, dx, dy, r : 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); + + -- Initialize plplot + plinit; + + -- Set up viewport and window, but do not draw box. + plenv(-1.3, 1.3, -1.3, 1.3, 1, -2); + for i in 1..10 loop + for j in x'range loop + x(j) := 0.1 * Long_Float(i) * x0(j); + y(j) := 0.1 * Long_Float(i) * y0(j); + end loop; + + -- Draw circles for polar grid. + plline(x, y); + 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. + -- Slightly off zero to avoid floating point logic flips at 90 and 270 deg + if dx >= -0.00001 then + plptex(dx, dy, dx, dy, -0.15, Trim(Integer'image(Integer(theta)), Left)); + else + plptex(dx, dy, -dx, -dy, 1.15, 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/x04a.adb =================================================================== --- trunk/examples/ada/x04a.adb 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/x04a.adb 2007-11-13 18:58:30 UTC (rev 8022) @@ -1,104 +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_Traditional, - PLplot_Auxiliary; -use - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Traditional, - PLplot_Auxiliary; - --- 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@ - -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/x04a.adb.cmake (from rev 8021, trunk/examples/ada/x04a.adb) =================================================================== --- trunk/examples/ada/x04a.adb.cmake (rev 0) +++ trunk/examples/ada/x04a.adb.cmake 2007-11-13 18:58:30 UTC (rev 8022) @@ -0,0 +1,104 @@ +-- $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_Traditional, + PLplot_Auxiliary; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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@ + +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/x05a.adb =================================================================== --- trunk/examples/ada/x05a.adb 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/x05a.adb 2007-11-13 18:58:30 UTC (rev 8022) @@ -1,63 +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_Traditional, - PLplot_Auxiliary; -use - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Traditional, - PLplot_Auxiliary; - --- 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@ - -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/x05a.adb.cmake (from rev 8021, trunk/examples/ada/x05a.adb) =================================================================== --- trunk/examples/ada/x05a.adb.cmake (rev 0) +++ trunk/examples/ada/x05a.adb.cmake 2007-11-13 18:58:30 UTC (rev 8022) @@ -0,0 +1,63 @@ +-- $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_Traditional, + PLplot_Auxiliary; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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@ + +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/x10a.adb =================================================================== --- trunk/examples/ada/x10a.adb 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/x10a.adb 2007-11-13 18:58:30 UTC (rev 8022) @@ -1,59 +0,0 @@ --- $Id$ - --- Window positioning 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.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Traditional, - PLplot_Auxiliary; -use - Ada.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot_Traditional, - PLplot_Auxiliary; - --- 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@ - -procedure x10a is -begin - -- Parse and process command line arguments - plparseopts(PL_PARSE_FULL); - - -- Initialize plplot - plinit; - - pladv(0); - plvpor(0.0, 1.0, 0.0, 1.0); - plwind(0.0, 1.0, 0.0, 1.0); - plbox("bc", 0.0, 0, "bc", 0.0, 0); - - plsvpa(50.0, 150.0, 50.0, 100.0); - plwind(0.0, 1.0, 0.0, 1.0); - plbox("bc", 0.0, 0, "bc", 0.0, 0); - plptex(0.5, 0.5, 1.0, 0.0, 0.5, "BOX at (50,150,50,100)"); - plend; -end x10a; Copied: trunk/examples/ada/x10a.adb.cmake (from rev 8021, trunk/examples/ada/x10a.adb) =================================================================== --- trunk/examples/ada/x10a.adb.cmake (rev 0) +++ trunk/examples/ada/x10a.adb.cmake 2007-11-13 18:58:30 UTC (rev 8022) @@ -0,0 +1,59 @@ +-- $Id$ + +-- Window positioning 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.Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; +use + Ada.Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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@ + +procedure x10a is +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + pladv(0); + plvpor(0.0, 1.0, 0.0, 1.0); + plwind(0.0, 1.0, 0.0, 1.0); + plbox("bc", 0.0, 0, "bc", 0.0, 0); + + plsvpa(50.0, 150.0, 50.0, 100.0); + plwind(0.0, 1.0, 0.0, 1.0); + plbox("bc", 0.0, 0, "bc", 0.0, 0); + plptex(0.5, 0.5, 1.0, 0.0, 0.5, "BOX at (50,150,50,100)"); + plend; +end x10a; Deleted: trunk/examples/ada/x12a.adb =================================================================== --- trunk/examples/ada/x12a.adb 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/x12a.adb 2007-11-13 18:58:30 UTC (rev 8022) @@ -1,110 +0,0 @@ --- $Id$ - --- Bar chart demo. - --- Copyright (C) 2006 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, - Ada.Strings, - Ada.Strings.Fixed, - PLplot_Traditional, - PLplot_Auxiliary; - -use - Ada.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - Ada.Strings, - Ada.Strings.Fixed, - PLplot_Traditional, - PLplot_Auxiliary; - --- 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@ - ------------------------------------------------------------------------------- --- Does a simple bar chart, using color fill. If color fill is --- unavailable, pattern fill is used instead (automatic). ------------------------------------------------------------------------------- - -procedure x12a is - y0 : Real_Vector (0 .. 9); - - procedure plfbox (x0, y0 : Long_Float) is - x, y : Real_Vector (0 ..3); - begin - x(0) := x0; - y(0) := 0.0; - - x(1) := x0; - y(1) := y0; - - x(2) := x0 + 1.0; - y(2) := y0; - - x(3) := x0 + 1.0; - y(3) := 0.0; - - plfill(x, y); - plcol0(1); - pllsty(1); - plline(x, y); - end plfbox; - -begin - -- Parse and process command line arguments. - plparseopts(PL_PARSE_FULL); - - -- Initialize plplot. - plinit; - - pladv(0); - plvsta; - plwind(1980.0, 1990.0, 0.0, 35.0); - plbox("bc", 1.0, 0, "bcnv", 10.0, 0); - plcol0(2); - pllab("Year", "Widget Sales (millions)", "#frPLplot Example 12"); - - y0(0) := 5.0; - y0(1) := 15.0; - y0(2) := 12.0; - y0(3) := 24.0; - y0(4) := 28.0; - y0(5) := 30.0; - y0(6) := 20.0; - y0(7) := 8.0; - y0(8) := 12.0; - y0(9) := 3.0; - - for i in y0'range loop - plcol0(i + 1); - plpsty(0); - plfbox((1980.0 + Long_Float(i)), y0(i)); - plptex(1980.0 + Long_Float(i) + 0.5, y0(i) + 1.0, 1.0, 0.0, 0.5, Trim(Integer'image(Integer(y0(i))), Left)); - plmtex("b", 1.0, (Long_Float(i) + 1.0) * 0.1 - 0.05, 0.5, Trim(Integer'image(1980 + i), Left)); - end loop; - - -- Don't forget to call plend to finish off! - plend; -end x12a; Copied: trunk/examples/ada/x12a.adb.cmake (from rev 8021, trunk/examples/ada/x12a.adb) =================================================================== --- trunk/examples/ada/x12a.adb.cmake (rev 0) +++ trunk/examples/ada/x12a.adb.cmake 2007-11-13 18:58:30 UTC (rev 8022) @@ -0,0 +1,110 @@ +-- $Id$ + +-- Bar chart demo. + +-- Copyright (C) 2006 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, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Traditional, + PLplot_Auxiliary; + +use + Ada.Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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@ + +------------------------------------------------------------------------------ +-- Does a simple bar chart, using color fill. If color fill is +-- unavailable, pattern fill is used instead (automatic). +------------------------------------------------------------------------------ + +procedure x12a is + y0 : Real_Vector (0 .. 9); + + procedure plfbox (x0, y0 : Long_Float) is + x, y : Real_Vector (0 ..3); + begin + x(0) := x0; + y(0) := 0.0; + + x(1) := x0; + y(1) := y0; + + x(2) := x0 + 1.0; + y(2) := y0; + + x(3) := x0 + 1.0; + y(3) := 0.0; + + plfill(x, y); + plcol0(1); + pllsty(1); + plline(x, y); + end plfbox; + +begin + -- Parse and process command line arguments. + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot. + plinit; + + pladv(0); + plvsta; + plwind(1980.0, 1990.0, 0.0, 35.0); + plbox("bc", 1.0, 0, "bcnv", 10.0, 0); + plcol0(2); + pllab("Year", "Widget Sales (millions)", "#frPLplot Example 12"); + + y0(0) := 5.0; + y0(1) := 15.0; + y0(2) := 12.0; + y0(3) := 24.0; + y0(4) := 28.0; + y0(5) := 30.0; + y0(6) := 20.0; + y0(7) := 8.0; + y0(8) := 12.0; + y0(9) := 3.0; + + for i in y0'range loop + plcol0(i + 1); + plpsty(0); + plfbox((1980.0 + Long_Float(i)), y0(i)); + plptex(1980.0 + Long_Float(i) + 0.5, y0(i) + 1.0, 1.0, 0.0, 0.5, Trim(Integer'image(Integer(y0(i))), Left)); + plmtex("b", 1.0, (Long_Float(i) + 1.0) * 0.1 - 0.05, 0.5, Trim(Integer'image(1980 + i), Left)); + end loop; + + -- Don't forget to call plend to finish off! + plend; +end x12a; Deleted: trunk/examples/ada/xthick01a.adb =================================================================== --- trunk/examples/ada/xthick01a.adb 2007-11-13 18:46:13 UTC (rev 8021) +++ trunk/examples/ada/xthick01a.adb 2007-11-13 18:58:30 UTC (rev 8022) @@ -1,185 +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, - PLplot_Auxiliary; -use - Ada.Text_IO, - Ada.Numerics, - Ada.Numerics.Long_Elementary_Functions, - PLplot, - PLplot_Auxiliary; - --- 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@ - -procedure xthick01a is - xs, ys : Real_Vector (0 .. 5); - xscale, yscale, xoff, yoff : Long_Float; - fontset : Integer := 1; - notes : String := "Make sure you get it right!"; - ver : String_80; - - 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 Set_Environment. 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). - Set_Pen_Color(Red); - Set_Environment(xmin, xmax, ymin, ymax, Not_Justified, Linear_Box_Plus); - Set_Pen_Color(Yellow); - Write_Labels("(x)", "(y)", "#frPLplot Example 1 - y=x#u2"); - - -- Plot the data points - Set_Pen_Color(Aquamarine); - Draw_Points(xs, ys, 9); - - -- Draw the line through the data - Set_Pen_Color(Green); - Draw_Curve(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). - Set_Pen_Color(Red); - Set_Environment(-2.0, 10.0, -0.4, 1.2, Not_Justified, Linear_Zero_Axes); - Set_Pen_Color(Yellow); - Write_Labels("(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 - Set_Pen_Color(Green); - Set_Pen_Width(2); - Draw_Curve(x, y); - Set_Pen_Width(1); - end plot2; - - - procedure plot3 is - x, y : Real_Vector (0 .. 100); - space1, mark1 : Integer_Array_1D(1 .. 1) := (others => 1500); - begin - Advance_To_Subpage(Next_SubPage); - - -- Use standard viewport, and define X range from 0 to 360 degrees, - -- Y range from -1.2 to 1.2. - Set_Viewport_Standard; - Set_Viewport_World(0.0, 360.0, -1.2, 1.2); - - -- Draw a box with ticks spaced 60 degrees apart in X, and 0.2 in Y. - Set_Pen_Color(Red); - Box_Around_Viewport("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.) - Set_Line_Style(mark1, space1); - Set_Pen_Color(Yellow); - Box_Around_Viewport("g", 30.0, 0, "g", 0.2, 0); - Set_Line_Style(Default_Continuous_Line); - - Set_Pen_Color(Green); - Write_Labels("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; - - Set_Pen_Color(Aquamarine); - Draw_Curve(x, y); - end plot3; - -begin - -- plplot initialization - - -- Divide page into 2x2 plots unless user overrides - Set_Number_Of_Subpages(2, 2); - - -- ... [truncated message content] |
From: <jb...@us...> - 2008-03-21 12:18:31
|
Revision: 8308 http://plplot.svn.sourceforge.net/plplot/?rev=8308&view=rev Author: jbauck Date: 2008-03-21 05:18:37 -0700 (Fri, 21 Mar 2008) Log Message: ----------- Added examples x08a.adb, xthick08.adb, x09a.adb, xthick09a.adb. Modified Paths: -------------- trunk/examples/ada/CMakeLists.txt trunk/examples/ada/Makefile.examples.in Added Paths: ----------- trunk/examples/ada/x08a.adb.cmake trunk/examples/ada/x09a.adb.cmake trunk/examples/ada/xthick08a.adb.cmake trunk/examples/ada/xthick09a.adb.cmake Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2008-03-21 12:10:06 UTC (rev 8307) +++ trunk/examples/ada/CMakeLists.txt 2008-03-21 12:18:37 UTC (rev 8308) @@ -26,6 +26,8 @@ "05" "06" "07" +"08" +"09" "10" "12" "thick01" @@ -35,6 +37,8 @@ "thick05" "thick06" "thick07" +"thick08" +"thick09" "thick10" "thick12" ) Modified: trunk/examples/ada/Makefile.examples.in =================================================================== --- trunk/examples/ada/Makefile.examples.in 2008-03-21 12:10:06 UTC (rev 8307) +++ trunk/examples/ada/Makefile.examples.in 2008-03-21 12:18:37 UTC (rev 8308) @@ -37,6 +37,8 @@ x05a$(EXEEXT) \ x06a$(EXEEXT) \ x07a$(EXEEXT) \ + x08a$(EXEEXT) \ + x09a$(EXEEXT) \ x10a$(EXEEXT) \ x12a$(EXEEXT) \ xthick01a$(EXEEXT) \ @@ -46,6 +48,8 @@ xthick05a$(EXEEXT) \ xthick06a$(EXEEXT) \ xthick07a$(EXEEXT) \ + xthick08a$(EXEEXT) \ + xthick09a$(EXEEXT) \ xthick10a$(EXEEXT) \ xthick12a$(EXEEXT) Added: trunk/examples/ada/x08a.adb.cmake =================================================================== --- trunk/examples/ada/x08a.adb.cmake (rev 0) +++ trunk/examples/ada/x08a.adb.cmake 2008-03-21 12:18:37 UTC (rev 8308) @@ -0,0 +1,192 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- 3-d plot demo. + +-- Copyright (C) 2008 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_Traditional, + PLplot_Auxiliary; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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@ + +procedure x08a is + + XPTS : Integer := 35; + YPTS : Integer := 46; + x : Real_Vector(0 .. XPTS - 1); + y : Real_Vector(0 .. YPTS - 1); + z : Real_Matrix(0 .. XPTS - 1, 0 .. YPTS - 1); + xx, yy, r : Long_Float; + zmin, zmax, step : Long_Float; + LEVELS : Integer := 10; + clevel: Real_Vector(0 .. LEVELS - 1); + nlevel : Integer := LEVELS; + rosen : Boolean := True; + sombrero : Boolean := False; + alt : Real_Vector(0 .. 1) := (60.0, 20.0); + az : Real_Vector(0 .. 1) := (30.0, 60.0); + title : array(0 .. 1) of String(1 .. 35) := + ("#frPLplot Example 8 - Alt=60, Az=30", + "#frPLplot Example 8 - Alt=20, Az=60"); + + + ------------------------------------------------------------------------------ + -- cmap1_init1 + + -- Initializes color map 1 in HLS space. + -- Basic grayscale variation from half-dark (which makes more interesting + -- looking plot compared to dark) to light. + -- An interesting variation on this: + -- s[1] = 1.0 + ---------------------------------------------------------------------------- + + procedure cmap1_init(gray : Boolean) is + i, h, l, s : Real_Vector(0 .. 1); + Reverse_Hue : Boolean_Array_1D(0 .. 1) := (False, False); + begin + i(0) := 0.0; -- left boundary + i(1) := 1.0; -- right boundary + + if gray then + h(0) := 0.0; -- hue -- low: red (arbitrary if s=0) + h(1) := 0.0; -- hue -- high: red (arbitrary if s=0) + + l(0) := 0.5; -- lightness -- low: half-dark + l(1) := 1.0; -- lightness -- high: light + + s(0) := 0.0; -- minimum saturation + s(1) := 0.0; -- minimum saturation + else + h(0) := 240.0; -- blue -> green -> yellow -> + h(1) := 0.0; -- -> red + + l(0) := 0.6; + l(1) := 0.6; + + s(0) := 0.8; + s(1) := 0.8; + end if; + + plscmap1n(256); + plscmap1l(HLS, i, h, l, s, Reverse_Hue); + + end cmap1_init; + +begin + + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + if sombrero then + rosen := False; + end if; + + -- Initialize plplot + plinit; + + for i in x'range loop + x(i) := Long_Float(i - XPTS / 2) / Long_Float(XPTS / 2); + if rosen then + x(i) := x(i) * 1.5; + end if; + end loop; + + for i in y'range loop + y(i) := Long_Float(i - YPTS / 2) / Long_Float(YPTS / 2); + if rosen then + y(i) := y(i) + 0.5; + end if; + end loop; + + for i in x'range loop + xx := x(i); + for j in y'range loop + yy := y(j); + if rosen then + z(i, j) := (1.0 - xx) * (1.0 - xx) + 100.0 * (yy - (xx * xx)) * (yy - (xx * xx)); + -- The log argument may be zero for just the right grid. + if z(i, j) > 0.0 then + z(i, j) := log(z(i, j)); + else + z(i, j) := -5.0; -- -MAXFLOAT would mess-up up the scale + end if; + else -- Sombrero is True. + r := sqrt(xx * xx + yy * yy); + z(i, j) := exp(-r * r) * cos(2.0 * pi * r); + end if; + end loop; -- j + end loop; -- i + + zmin := Matrix_Min(z); + zmax := Matrix_Max(z); + step := (zmax - zmin) / Long_Float(nlevel + 1); + for i in clevel'range loop + clevel(i) := zmin + step + step * Long_Float(i); + end loop; + + pllightsource(1.0, 1.0, 1.0); + + for k in alt'range loop + for ifshade in 0 .. 3 loop + pladv(0); + plvpor(0.0, 1.0, 0.0, 0.9); + plwind(-1.0, 1.0, -0.9, 1.1); + plcol0(3); + plmtex("t", 1.0, 0.5, 0.5, title(k)); + plcol0(1); + if rosen then + plw3d(1.0, 1.0, 1.0, -1.5, 1.5, -0.5, 1.5, zmin, zmax, alt(k), az(k)); + else + plw3d(1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, zmin, zmax, alt(k), az(k)); + end if; + + plbox3("bnstu", "x axis", 0.0, 0, + "bnstu", "y axis", 0.0, 0, + "bcdmnstuv", "z axis", 0.0, 0); + plcol0(2); + + if ifshade = 0 then -- diffuse light surface plot + cmap1_init(True); + plsurf3d(x, y, z, 0, clevel); -- clevel is not used here + elsif ifshade = 1 then -- magnitude colored plot + cmap1_init(False); + plsurf3d(x, y, z, MAG_COLOR, clevel); + elsif ifshade = 2 then -- magnitude colored plot with faceted squares + cmap1_init(False); + plsurf3d(x, y, z, MAG_COLOR + FACETED, clevel); + else -- magnitude colored plot with contours + cmap1_init(False); + plsurf3d(x, y, z, MAG_COLOR + SURF_CONT + BASE_CONT, clevel); + end if; + end loop; -- ifshade + end loop; -- k + + plend; + +end x08a; Added: trunk/examples/ada/x09a.adb.cmake =================================================================== --- trunk/examples/ada/x09a.adb.cmake (rev 0) +++ trunk/examples/ada/x09a.adb.cmake 2008-03-21 12:18:37 UTC (rev 8308) @@ -0,0 +1,383 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- Contour plot demo. + +-- Copyright (C) 2008 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 + System, + Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; +use + Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + System, + PLplot_Traditional, + PLplot_Auxiliary; + +-- 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; +with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays; + + -------------------------------------------------------------------------- + -- Does several contour plots using different coordinate mappings. + -------------------------------------------------------------------------- + +procedure x09a is + + XPTS : Integer := 35; -- Number of data points in x + YPTS : Integer := 46; -- Number of data points in y + + -- polar plot data + PERIMETERPTS : Integer := 100; + RPTS : Integer := 40; + THETAPTS : Integer := 40; + + -- potential plot data + PPERIMETERPTS : Integer := 100; + PRPTS : Integer := 40; + PTHETAPTS : Integer := 64; + PNLEVEL : Integer := 20; + + xx, yy, argx, argy, distort : Long_Float; + mark : Integer_Array_1D(1 .. 1); + space : Integer_Array_1D(1 .. 1); + + zgdummy : Real_Vector(0 .. 0); -- not used + z, w : Real_Matrix(0 .. XPTS - 1, 0 .. YPTS - 1); + + clevel : Real_Vector(0 .. 10) := (-1.0, -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0); + + cgrid1 : aliased Transformation_Data_Type + (x_Last => XPTS - 1, + y_Last => YPTS - 1, + z_Last => 0); + + cgrid2 : aliased Transformation_Data_Type_2 + (x_Last => XPTS - 1, + y_Last => YPTS - 1); + + + -- Quick and dirty function for converting from C. Apparently C lacks an + -- exponentiation operator. + -- Don't have a cow over the abs(a) in pow because all calls to pow() in + -- this example have an exponent of 2.0, i.e., squaring. Without the abs() + -- Ada raises an exception. (Why doesn't C?) + function pow(a, b : Long_Float) return Long_Float is + aa : Long_Float; + begin + aa := abs(a); + return aa ** b; + end pow; + + + procedure mypltr -- This spec is necessary to accommodate pragma Convention(). + (x, y : Long_Float; + tx, ty : out Long_Float; + pltr_data : PLpointer); + pragma Convention(Convention => C, Entity => mypltr); + + procedure mypltr + (x, y : Long_Float; + tx, ty : out Long_Float; + pltr_data : PLpointer) + is + -- Transformation function + XSPA : Long_Float := 2.0 / Long_Float(XPTS - 1); + YSPA : Long_Float := 2.0 / Long_Float(YPTS - 1); + tr : Real_Vector(0 .. 5) := (XSPA, 0.0, -1.0, 0.0, YSPA, -1.0); + begin -- mypltr + tx := tr(0) * x + tr(1) * y + tr(2); + ty := tr(3) * x + tr(4) * y + tr(5); + end; -- mypltr + + + -- Polar contour plot example + procedure polar is + t, r, theta : Long_Float; + px, py : Real_Vector(0 .. PERIMETERPTS - 1); + lev : Real_Vector(0 .. 9); + z : Real_Matrix(0 .. RPTS - 1, 0 .. THETAPTS - 1); + cgrid2 : aliased Transformation_Data_Type_2 + (x_Last => RPTS - 1, + y_Last => THETAPTS - 1); + + begin -- polar + plenv(-1.0, 1.0, -1.0, 1.0, 0, -2); + plcol0(1); + + -- Perimeter + for i in 0 .. PERIMETERPTS - 1 loop + t := (2.0 * pi / Long_Float(PERIMETERPTS - 1)) * Long_Float(i); + px(i) := cos(t); + py(i) := sin(t); + end loop; + + plline(px, py); + + for i in 0 .. RPTS - 1 loop + r := Long_Float(i) / Long_Float(RPTS - 1); + for j in 0 .. THETAPTS - 1 loop + theta := (2.0 * pi / Long_Float(THETAPTS - 1)) * Long_Float(j); + cgrid2.xg(i, j) := r * cos(theta); + cgrid2.yg(i, j) := r * sin(theta); + z(i, j) := r; + end loop; + end loop; + + for i in lev'range loop + lev(i) := 0.05 + 0.10 * Long_Float(i); + end loop; + + plcol0(2); + plcont(z, 1, RPTS, 1, THETAPTS, lev, pltr2'access, cgrid2'Address); + plcol0(1); + pllab("", "", "Polar Contour Plot"); + end; -- polar + + + -- Shielded potential contour plot example + procedure potential is + nlevelneg, nlevelpos : Integer; + ncollin, ncolbox, ncollab : Integer; + rmax, xmin, xmax, x0, ymin, ymax, y0, zmin, zmax : Long_Float; + peps, xpmin, xpmax, ypmin, ypmax : Long_Float; + eps, q1, d1, q1i, d1i, q2, d2, q2i, d2i : Long_Float; + div1, div1i, div2, div2i : Long_Float; + t, r, theta : Long_Float; + dz, clevel : Long_Float; + clevelneg : Real_Vector(0 .. 9); -- Compare with x09c.c which + clevelpos : Real_Vector(0 .. 9); -- over-allocates these arrays. + px, py : Real_Vector(0 .. PPERIMETERPTS - 1); + z : Real_Matrix(0 .. PRPTS - 1, 0 .. PTHETAPTS - 1); + cgrid2 : aliased Transformation_Data_Type_2 + (x_Last => PRPTS - 1, + y_Last => PTHETAPTS - 1); + + begin -- potential + -- Create data to be contoured. + for i in 0 .. PRPTS - 1 loop + r := 0.5 + Long_Float(i); + for j in 0 .. PTHETAPTS - 1 loop + theta := (2.0 * pi / Long_Float(PTHETAPTS - 1)) * (0.5 + Long_Float(j)); + cgrid2.xg(i, j) := r * cos(theta); + cgrid2.yg(i, j) := r * sin(theta); + end loop; + end loop; + + rmax := r; + xmin := Matrix_Min(cgrid2.xg); + xmax := Matrix_Max(cgrid2.xg); + ymin := Matrix_Min(cgrid2.yg); + ymax := Matrix_Max(cgrid2.yg); + x0 := (xmin + xmax) / 2.0; + y0 := (ymin + ymax) / 2.0; + + -- Expanded limits + peps := 0.05; + xpmin := xmin - abs(xmin) * peps; + xpmax := xmax + abs(xmax) * peps; + ypmin := ymin - abs(ymin) * peps; + ypmax := ymax + abs(ymax) * peps; + + -- Potential inside a conducting cylinder (or sphere) by method of images + -- Charge 1 is placed at (d1, d1), with image charge at (d2, d2). + -- Charge 2 is placed at (d1, -d1), with image charge at (d2, -d2). + -- Also put in smoothing term at small distances. + eps := 2.0; + + q1 := 1.0; + d1 := rmax / 4.0; + + q1i := -q1 * rmax / d1; + d1i := rmax * rmax / d1; + + q2 := -1.0; + d2 := rmax / 4.0; + + q2i := -q2 * rmax / d2; + d2i := rmax * rmax / d2; + + for i in 0 .. PRPTS - 1 loop + for j in 0 .. PTHETAPTS - 1 loop + div1 := sqrt(pow(cgrid2.xg(i, j)-d1, 2.0) + pow(cgrid2.yg(i, j)-d1, 2.0) + pow(eps, 2.0)); + div1i := sqrt(pow(cgrid2.xg(i, j)-d1i, 2.0) + pow(cgrid2.yg(i, j)-d1i, 2.0) + pow(eps, 2.0)); + div2 := sqrt(pow(cgrid2.xg(i, j)-d2, 2.0) + pow(cgrid2.yg(i, j)+d2, 2.0) + pow(eps, 2.0)); + div2i := sqrt(pow(cgrid2.xg(i, j)-d2i, 2.0) + pow(cgrid2.yg(i, j)+d2i, 2.0) + pow(eps, 2.0)); + z(i, j) := q1/div1 + q1i/div1i + q2/div2 + q2i/div2i; + end loop; + end loop; + zmin := Matrix_Min(z); + zmax := Matrix_Max(z); + + -- Positive and negative contour levels. + dz := (zmax - zmin) / Long_Float(PNLEVEL); + nlevelneg := 0; + nlevelpos := 0; + for i in 0 .. PNLEVEL - 1 loop + clevel := zmin + (Long_Float(i) + 0.5) * dz; + if clevel <= 0.0 then + clevelneg(nlevelneg) := clevel; + nlevelneg := nlevelneg + 1; + else + clevelpos(nlevelpos) := clevel; + nlevelpos := nlevelpos + 1; + end if; + end loop; + + -- Colours! + ncollin := 11; + ncolbox := 1; + ncollab := 2; + + -- Finally start plotting this page! + pladv(0); + plcol0(ncolbox); + + plvpas(0.1, 0.9, 0.1, 0.9, 1.0); + plwind(xpmin, xpmax, ypmin, ypmax); + plbox("", 0.0, 0, "", 0.0, 0); + + plcol0(ncollin); + if nlevelneg >0 then + -- Negative contours + pllsty(2); + plcont(z, 1, PRPTS, 1, PTHETAPTS, clevelneg, pltr2'access, cgrid2'Address); + end if; + + if nlevelpos > 0 then + -- Positive contours + pllsty(1); + plcont(z, 1, PRPTS, 1, PTHETAPTS, clevelpos, pltr2'access, cgrid2'Address); + end if; + + -- Draw outer boundary + for i in 0 .. PPERIMETERPTS - 1 loop + t := (2.0 * pi / Long_Float(PPERIMETERPTS - 1)) * Long_Float(i); + px(i) := x0 + rmax * cos(t); + py(i) := y0 + rmax * sin(t); + end loop; + + plcol0(ncolbox); + plline(px, py); + + plcol0(ncollab); + pllab("", "", "Shielded potential of charges in a conducting sphere"); + + end; -- potential + + +begin -- main + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + -- Take care of limitation on singleton positional aggregates. + mark(1) := 1500; + space(1) := 1500; + zgdummy(0) := 0.0; + + for i in 0 .. XPTS - 1 loop + xx := Long_Float(i - XPTS / 2) / Long_Float(XPTS / 2); + for j in 0 .. YPTS - 1 loop + yy := Long_Float(j - YPTS / 2) / Long_Float(YPTS / 2) - 1.0; + z(i, j) := xx * xx - yy * yy; + w(i, j) := 2.0 * xx * yy; + end loop; + end loop; + + -- Set up grids + cgrid1.zg := zgdummy; -- dummy; not used + for i in 0 .. XPTS - 1 loop + for j in 0 .. YPTS - 1 loop + mypltr(Long_Float(i), Long_Float(j), xx, yy, System.Null_Address); --here + + argx := xx * pi / 2.0; + argy := yy * pi / 2.0; + distort := 0.4; + + cgrid1.xg(i) := xx + distort * cos(argx); + cgrid1.yg(j) := yy - distort * cos(argy); + + cgrid2.xg(i, j) := xx + distort * cos(argx) * cos(argy); + cgrid2.yg(i, j) := yy - distort * cos(argx) * cos(argy); + end loop; + end loop; + + -- The following use of Unrestricted_Access works but is GNAT-specific. + -- I don't know how else to solve the problem of having a user-specified + -- function that is passed through five or so levels of C as a callback + -- while also not requiring the user to modify the source for plplot_thin.adb + -- 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_setcontlabelparam(0.006, 0.3, 0.1, True); + plenv(-1.0, 1.0, -1.0, 1.0, 0, 0); + plcol0(2); + plcont(z, 1, XPTS, 1, YPTS, clevel, mypltr'Unrestricted_Access, System.Null_Address); + + plstyl(mark, space); + plcol0(3); + plcont(w, 1, XPTS, 1, YPTS, clevel, mypltr'Unrestricted_Access, System.Null_Address); + plstyl(0); + plcol0(1); + pllab("X Coordinate", "Y Coordinate", "Streamlines of flow"); + + -- Plot using 1d coordinate transform + pl_setcontlabelparam(0.006, 0.3, 0.1, False); + plenv(-1.0, 1.0, -1.0, 1.0, 0, 0); + plcol0(2); + plcont(z, 1, XPTS, 1, YPTS, clevel, pltr1'access, cgrid1'Address); + + plstyl(mark, space); + plcol0(3); + plcont(w, 1, XPTS, 1, YPTS, clevel, pltr1'access, cgrid1'Address); + plstyl(0); + plcol0(1); + pllab("X Coordinate", "Y Coordinate", "Streamlines of flow"); + + -- Plot using 2d coordinate transform + plenv(-1.0, 1.0, -1.0, 1.0, 0, 0); + plcol0(2); + plcont(z, 1, XPTS, 1, YPTS, clevel, pltr2'access, cgrid2'Address); + + plstyl(mark, space); + plcol0(3); + plcont(w, 1, XPTS, 1, YPTS, clevel, pltr2'access, cgrid2'Address); + plstyl(0); + plcol0(1); + pllab("X Coordinate", "Y Coordinate", "Streamlines of flow"); + + -- Make polar plot. + pl_setcontlabelparam(0.006, 0.3, 0.1, False); + polar; + + -- Make potential plot. + pl_setcontlabelparam(0.006, 0.3, 0.1, False); + potential; + + plend; +end x09a; Added: trunk/examples/ada/xthick08a.adb.cmake =================================================================== --- trunk/examples/ada/xthick08a.adb.cmake (rev 0) +++ trunk/examples/ada/xthick08a.adb.cmake 2008-03-21 12:18:37 UTC (rev 8308) @@ -0,0 +1,192 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- 3-d plot demo. + +-- Copyright (C) 2008 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, + PLplot_Auxiliary; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot, + PLplot_Auxiliary; + +-- 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@ + +procedure xthick08a is + + XPTS : Integer := 35; + YPTS : Integer := 46; + x : Real_Vector(0 .. XPTS - 1); + y : Real_Vector(0 .. YPTS - 1); + z : Real_Matrix(0 .. XPTS - 1, 0 .. YPTS - 1); + xx, yy, r : Long_Float; + zmin, zmax, step : Long_Float; + LEVELS : Integer := 10; + clevel: Real_Vector(0 .. LEVELS - 1); + nlevel : Integer := LEVELS; + rosen : Boolean := True; + sombrero : Boolean := False; + alt : Real_Vector(0 .. 1) := (60.0, 20.0); + az : Real_Vector(0 .. 1) := (30.0, 60.0); + title : array(0 .. 1) of String(1 .. 35) := + ("#frPLplot Example 8 - Alt=60, Az=30", + "#frPLplot Example 8 - Alt=20, Az=60"); + + + ------------------------------------------------------------------------------ + -- cmap1_init1 + + -- Initializes color map 1 in HLS space. + -- Basic grayscale variation from half-dark (which makes more interesting + -- looking plot compared to dark) to light. + -- An interesting variation on this: + -- s[1] = 1.0 + ---------------------------------------------------------------------------- + + procedure cmap1_init(gray : Boolean) is + i, h, l, s : Real_Vector(0 .. 1); + Reverse_Hue : Boolean_Array_1D(0 .. 1) := (False, False); + begin + i(0) := 0.0; -- left boundary + i(1) := 1.0; -- right boundary + + if gray then + h(0) := 0.0; -- hue -- low: red (arbitrary if s=0) + h(1) := 0.0; -- hue -- high: red (arbitrary if s=0) + + l(0) := 0.5; -- lightness -- low: half-dark + l(1) := 1.0; -- lightness -- high: light + + s(0) := 0.0; -- minimum saturation + s(1) := 0.0; -- minimum saturation + else + h(0) := 240.0; -- blue -> green -> yellow -> + h(1) := 0.0; -- -> red + + l(0) := 0.6; + l(1) := 0.6; + + s(0) := 0.8; + s(1) := 0.8; + end if; + + Set_Number_Of_Colors_In_Color_Map_1(256); + Set_Color_Map_1_Piecewise(HLS, i, h, l, s, Reverse_Hue); + + end cmap1_init; + +begin + + -- Parse and process command line arguments + Parse_Command_Line_Arguments(Parse_Full); + if sombrero then + rosen := False; + end if; + + -- Initialize plplot + Initialize_PLplot; + + for i in x'range loop + x(i) := Long_Float(i - XPTS / 2) / Long_Float(XPTS / 2); + if rosen then + x(i) := x(i) * 1.5; + end if; + end loop; + + for i in y'range loop + y(i) := Long_Float(i - YPTS / 2) / Long_Float(YPTS / 2); + if rosen then + y(i) := y(i) + 0.5; + end if; + end loop; + + for i in x'range loop + xx := x(i); + for j in y'range loop + yy := y(j); + if rosen then + z(i, j) := (1.0 - xx) * (1.0 - xx) + 100.0 * (yy - (xx * xx)) * (yy - (xx * xx)); + -- The log argument may be zero for just the right grid. + if z(i, j) > 0.0 then + z(i, j) := log(z(i, j)); + else + z(i, j) := -5.0; -- -MAXFLOAT would mess-up up the scale + end if; + else -- Sombrero is True. + r := sqrt(xx * xx + yy * yy); + z(i, j) := exp(-r * r) * cos(2.0 * pi * r); + end if; + end loop; -- j + end loop; -- i + + zmin := Matrix_Min(z); + zmax := Matrix_Max(z); + step := (zmax - zmin) / Long_Float(nlevel + 1); + for i in clevel'range loop + clevel(i) := zmin + step + step * Long_Float(i); + end loop; + + Set_Light_Source(1.0, 1.0, 1.0); + + for k in alt'range loop + for ifshade in 0 .. 3 loop + Advance_To_Subpage(0); + Set_Viewport_Normalized(0.0, 1.0, 0.0, 0.9); + Set_Viewport_World(-1.0, 1.0, -0.9, 1.1); + Set_Pen_Color(Green); + Write_Text_Viewport("t", 1.0, 0.5, 0.5, title(k)); + Set_Pen_Color(Red); + if rosen then + Set_Up_3D(1.0, 1.0, 1.0, -1.5, 1.5, -0.5, 1.5, zmin, zmax, alt(k), az(k)); + else + Set_Up_3D(1.0, 1.0, 1.0, -1.0, 1.0, -1.0, 1.0, zmin, zmax, alt(k), az(k)); + end if; + + Box_Around_Viewport_3D("bnstu", "x axis", 0.0, 0, + "bnstu", "y axis", 0.0, 0, + "bcdmnstuv", "z axis", 0.0, 0); + Set_Pen_Color(Yellow); + + if ifshade = 0 then -- diffuse light surface plot + cmap1_init(True); + Shaded_Surface_3D(x, y, z, 0, clevel); -- clevel is not used here + elsif ifshade = 1 then -- magnitude colored plot + cmap1_init(False); + Shaded_Surface_3D(x, y, z, MAG_COLOR, clevel); + elsif ifshade = 2 then -- magnitude colored plot with faceted squares + cmap1_init(False); + Shaded_Surface_3D(x, y, z, MAG_COLOR + FACETED, clevel); + else -- magnitude colored plot with contours + cmap1_init(False); + Shaded_Surface_3D(x, y, z, MAG_COLOR + SURF_CONT + BASE_CONT, clevel); + end if; + end loop; -- ifshade + end loop; -- k + + End_PLplot; + +end xthick08a; Added: trunk/examples/ada/xthick09a.adb.cmake =================================================================== --- trunk/examples/ada/xthick09a.adb.cmake (rev 0) +++ trunk/examples/ada/xthick09a.adb.cmake 2008-03-21 12:18:37 UTC (rev 8308) @@ -0,0 +1,383 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- Contour plot demo. + +-- Copyright (C) 2008 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 + System, + Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot, + PLplot_Auxiliary; +use + Text_IO, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + System, + PLplot, + PLplot_Auxiliary; + +-- 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; +with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays; + + -------------------------------------------------------------------------- + -- Does several contour plots using different coordinate mappings. + -------------------------------------------------------------------------- + +procedure xthick09a is + + XPTS : Integer := 35; -- Number of data points in x + YPTS : Integer := 46; -- Number of data points in y + + -- polar plot data + PERIMETERPTS : Integer := 100; + RPTS : Integer := 40; + THETAPTS : Integer := 40; + + -- potential plot data + PPERIMETERPTS : Integer := 100; + PRPTS : Integer := 40; + PTHETAPTS : Integer := 64; + PNLEVEL : Integer := 20; + + xx, yy, argx, argy, distort : Long_Float; + mark : Integer_Array_1D(1 .. 1); + space : Integer_Array_1D(1 .. 1); + + zgdummy : Real_Vector(0 .. 0); -- not used + z, w : Real_Matrix(0 .. XPTS - 1, 0 .. YPTS - 1); + + clevel : Real_Vector(0 .. 10) := (-1.0, -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0); + + cgrid1 : aliased Transformation_Data_Type + (x_Last => XPTS - 1, + y_Last => YPTS - 1, + z_Last => 0); + + cgrid2 : aliased Transformation_Data_Type_2 + (x_Last => XPTS - 1, + y_Last => YPTS - 1); + + + -- Quick and dirty function for converting from C. Apparently C lacks an + -- exponentiation operator. + -- Don't have a cow over the abs(a) in pow because all calls to pow() in + -- this example have an exponent of 2.0, i.e., squaring. Without the abs() + -- Ada raises an exception. (Why doesn't C?) + function pow(a, b : Long_Float) return Long_Float is + aa : Long_Float; + begin + aa := abs(a); + return aa ** b; + end pow; + + + procedure mypltr -- This spec is necessary to accommodate pragma Convention(). + (x, y : Long_Float; + tx, ty : out Long_Float; + pltr_data : PLpointer); + pragma Convention(Convention => C, Entity => mypltr); + + procedure mypltr + (x, y : Long_Float; + tx, ty : out Long_Float; + pltr_data : PLpointer) + is + -- Transformation function + XSPA : Long_Float := 2.0 / Long_Float(XPTS - 1); + YSPA : Long_Float := 2.0 / Long_Float(YPTS - 1); + tr : Real_Vector(0 .. 5) := (XSPA, 0.0, -1.0, 0.0, YSPA, -1.0); + begin -- mypltr + tx := tr(0) * x + tr(1) * y + tr(2); + ty := tr(3) * x + tr(4) * y + tr(5); + end; -- mypltr + + + -- Polar contour plot example + procedure polar is + t, r, theta : Long_Float; + px, py : Real_Vector(0 .. PERIMETERPTS - 1); + lev : Real_Vector(0 .. 9); + z : Real_Matrix(0 .. RPTS - 1, 0 .. THETAPTS - 1); + cgrid2 : aliased Transformation_Data_Type_2 + (x_Last => RPTS - 1, + y_Last => THETAPTS - 1); + + begin -- polar + Set_Environment(-1.0, 1.0, -1.0, 1.0, 0, -2); + Set_Pen_Color(Red); + + -- Perimeter + for i in 0 .. PERIMETERPTS - 1 loop + t := (2.0 * pi / Long_Float(PERIMETERPTS - 1)) * Long_Float(i); + px(i) := cos(t); + py(i) := sin(t); + end loop; + + Draw_Curve(px, py); + + for i in 0 .. RPTS - 1 loop + r := Long_Float(i) / Long_Float(RPTS - 1); + for j in 0 .. THETAPTS - 1 loop + theta := (2.0 * pi / Long_Float(THETAPTS - 1)) * Long_Float(j); + cgrid2.xg(i, j) := r * cos(theta); + cgrid2.yg(i, j) := r * sin(theta); + z(i, j) := r; + end loop; + end loop; + + for i in lev'range loop + lev(i) := 0.05 + 0.10 * Long_Float(i); + end loop; + + Set_Pen_Color(Yellow); + 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 + + + -- Shielded potential contour plot example + procedure potential is + nlevelneg, nlevelpos : Integer; + ncollin, ncolbox, ncollab : Integer; + rmax, xmin, xmax, x0, ymin, ymax, y0, zmin, zmax : Long_Float; + peps, xpmin, xpmax, ypmin, ypmax : Long_Float; + eps, q1, d1, q1i, d1i, q2, d2, q2i, d2i : Long_Float; + div1, div1i, div2, div2i : Long_Float; + t, r, theta : Long_Float; + dz, clevel : Long_Float; + clevelneg : Real_Vector(0 .. 9); -- Compare with x09c.c which + clevelpos : Real_Vector(0 .. 9); -- over-allocates these arrays. + px, py : Real_Vector(0 .. PPERIMETERPTS - 1); + z : Real_Matrix(0 .. PRPTS - 1, 0 .. PTHETAPTS - 1); + cgrid2 : aliased Transformation_Data_Type_2 + (x_Last => PRPTS - 1, + y_Last => PTHETAPTS - 1); + + begin -- potential + -- Create data to be contoured. + for i in 0 .. PRPTS - 1 loop + r := 0.5 + Long_Float(i); + for j in 0 .. PTHETAPTS - 1 loop + theta := (2.0 * pi / Long_Float(PTHETAPTS - 1)) * (0.5 + Long_Float(j)); + cgrid2.xg(i, j) := r * cos(theta); + cgrid2.yg(i, j) := r * sin(theta); + end loop; + end loop; + + rmax := r; + xmin := Matrix_Min(cgrid2.xg); + xmax := Matrix_Max(cgrid2.xg); + ymin := Matrix_Min(cgrid2.yg); + ymax := Matrix_Max(cgrid2.yg); + x0 := (xmin + xmax) / 2.0; + y0 := (ymin + ymax) / 2.0; + + -- Expanded limits + peps := 0.05; + xpmin := xmin - abs(xmin) * peps; + xpmax := xmax + abs(xmax) * peps; + ypmin := ymin - abs(ymin) * peps; + ypmax := ymax + abs(ymax) * peps; + + -- Potential inside a conducting cylinder (or sphere) by method of images + -- Charge 1 is placed at (d1, d1), with image charge at (d2, d2). + -- Charge 2 is placed at (d1, -d1), with image charge at (d2, -d2). + -- Also put in smoothing term at small distances. + eps := 2.0; + + q1 := 1.0; + d1 := rmax / 4.0; + + q1i := -q1 * rmax / d1; + d1i := rmax * rmax / d1; + + q2 := -1.0; + d2 := rmax / 4.0; + + q2i := -q2 * rmax / d2; + d2i := rmax * rmax / d2; + + for i in 0 .. PRPTS - 1 loop + for j in 0 .. PTHETAPTS - 1 loop + div1 := sqrt(pow(cgrid2.xg(i, j)-d1, 2.0) + pow(cgrid2.yg(i, j)-d1, 2.0) + pow(eps, 2.0)); + div1i := sqrt(pow(cgrid2.xg(i, j)-d1i, 2.0) + pow(cgrid2.yg(i, j)-d1i, 2.0) + pow(eps, 2.0)); + div2 := sqrt(pow(cgrid2.xg(i, j)-d2, 2.0) + pow(cgrid2.yg(i, j)+d2, 2.0) + pow(eps, 2.0)); + div2i := sqrt(pow(cgrid2.xg(i, j)-d2i, 2.0) + pow(cgrid2.yg(i, j)+d2i, 2.0) + pow(eps, 2.0)); + z(i, j) := q1/div1 + q1i/div1i + q2/div2 + q2i/div2i; + end loop; + end loop; + zmin := Matrix_Min(z); + zmax := Matrix_Max(z); + + -- Positive and negative contour levels. + dz := (zmax - zmin) / Long_Float(PNLEVEL); + nlevelneg := 0; + nlevelpos := 0; + for i in 0 .. PNLEVEL - 1 loop + clevel := zmin + (Long_Float(i) + 0.5) * dz; + if clevel <= 0.0 then + clevelneg(nlevelneg) := clevel; + nlevelneg := nlevelneg + 1; + else + clevelpos(nlevelpos) := clevel; + nlevelpos := nlevelpos + 1; + end if; + end loop; + + -- Colours! + ncollin := Cyan; + ncolbox := Red; + ncollab := Yellow; + + -- Finally start plotting this page! + Advance_To_Subpage(Next_Subpage); + Set_Pen_Color(ncolbox); + + Set_Viewport_Maximized_For_Aspect_Ratio(0.1, 0.9, 0.1, 0.9, 1.0); + Set_Viewport_World(xpmin, xpmax, ypmin, ypmax); + Box_Around_Viewport("", 0.0, 0, "", 0.0, 0); + + Set_Pen_Color(ncollin); + if nlevelneg >0 then + -- Negative contours + Select_Line_Style(2); + Contour_Plot(z, 1, PRPTS, 1, PTHETAPTS, clevelneg, Plot_Transformation_2'access, cgrid2'Address); + end if; + + if nlevelpos > 0 then + -- Positive contours + Select_Line_Style(1); + Contour_Plot(z, 1, PRPTS, 1, PTHETAPTS, clevelpos, Plot_Transformation_2'access, cgrid2'Address); + end if; + + -- Draw outer boundary + for i in 0 .. PPERIMETERPTS - 1 loop + t := (2.0 * pi / Long_Float(PPERIMETERPTS - 1)) * Long_Float(i); + px(i) := x0 + rmax * cos(t); + py(i) := y0 + rmax * sin(t); + end loop; + + Set_Pen_Color(ncolbox); + Draw_Curve(px, py); + + Set_Pen_Color(ncollab); + Write_Labels("", "", "Shielded potential of charges in a conducting sphere"); + + end; -- potential + + +begin -- main + -- Parse and process command line arguments + Parse_Command_Line_Arguments(Parse_Full); + + -- Initialize plplot + Initialize_PLplot; + + -- Take care of limitation on singleton positional aggregates. + mark(1) := 1500; + space(1) := 1500; + zgdummy(0) := 0.0; + + for i in 0 .. XPTS - 1 loop + xx := Long_Float(i - XPTS / 2) / Long_Float(XPTS / 2); + for j in 0 .. YPTS - 1 loop + yy := Long_Float(j - YPTS / 2) / Long_Float(YPTS / 2) - 1.0; + z(i, j) := xx * xx - yy * yy; + w(i, j) := 2.0 * xx * yy; + end loop; + end loop; + + -- Set up grids + cgrid1.zg := zgdummy; -- dummy; not used + for i in 0 .. XPTS - 1 loop + for j in 0 .. YPTS - 1 loop + mypltr(Long_Float(i), Long_Float(j), xx, yy, System.Null_Address); --here + + argx := xx * pi / 2.0; + argy := yy * pi / 2.0; + distort := 0.4; + + cgrid1.xg(i) := xx + distort * cos(argx); + cgrid1.yg(j) := yy - distort * cos(argy); + + cgrid2.xg(i, j) := xx + distort * cos(argx) * cos(argy); + cgrid2.yg(i, j) := yy - distort * cos(argx) * cos(argy); + end loop; + end loop; + + -- The following use of Unrestricted_Access works but is GNAT-specific. + -- I don't know how else to solve the problem of having a user-specified + -- function that is passed through five or so levels of C as a callback + -- while also not requiring the user to modify the source for plplot_thin.adb + -- 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_Parameters(0.006, 0.3, 0.1, True); + Set_Environment(-1.0, 1.0, -1.0, 1.0, 0, 0); + Set_Pen_Color(Yellow); + Contour_Plot(z, 1, XPTS, 1, YPTS, clevel, mypltr'Unrestricted_Access, System.Null_Address); + + Set_Line_Style(mark, space); + Set_Pen_Color(Green); + Contour_Plot(w, 1, XPTS, 1, YPTS, clevel, mypltr'Unrestricted_Access, System.Null_Address); + Set_Line_Style(0); + Set_Pen_Color(Red); + Write_Labels("X Coordinate", "Y Coordinate", "Streamlines of flow"); + + -- Plot using 1d coordinate transform + Set_Contour_Label_Parameters(0.006, 0.3, 0.1, False); + Set_Environment(-1.0, 1.0, -1.0, 1.0, 0, 0); + Set_Pen_Color(Yellow); + Contour_Plot(z, 1, XPTS, 1, YPTS, clevel, Plot_Transformation_1'access, cgrid1'Address); + + Set_Line_Style(mark, space); + Set_Pen_Color(Green); + Contour_Plot(w, 1, XPTS, 1, YPTS, clevel, Plot_Transformation_1'access, cgrid1'Address); + Set_Line_Style(0); + Set_Pen_Color(Red); + Write_Labels("X Coordinate", "Y Coordinate", "Streamlines of flow"); + + -- Plot using 2d coordinate transform + Set_Environment(-1.0, 1.0, -1.0, 1.0, 0, 0); + Set_Pen_Color(Yellow); + Contour_Plot(z, 1, XPTS, 1, YPTS, clevel, Plot_Transformation_2'access, cgrid2'Address); + + Set_Line_Style(mark, space); + Set_Pen_Color(Green); + Contour_Plot(w, 1, XPTS, 1, YPTS, clevel, Plot_Transformation_2'access, cgrid2'Address); + Set_Line_Style(0); + Set_Pen_Color(Red); + Write_Labels("X Coordinate", "Y Coordinate", "Streamlines of flow"); + + -- Make polar plot. + Set_Contour_Label_Parameters(0.006, 0.3, 0.1, False); + polar; + + -- Make potential plot. + Set_Contour_Label_Parameters(0.006, 0.3, 0.1, False); + potential; + + End_PLplot; +end xthick09a; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Alan W. I. <ir...@be...> - 2008-03-21 16:22:26
|
On 2008-03-21 05:18-0700 jb...@us... wrote: > Revision: 8308 > http://plplot.svn.sourceforge.net/plplot/?rev=8308&view=rev > Author: jbauck > Date: 2008-03-21 05:18:37 -0700 (Fri, 21 Mar 2008) > > Log Message: > ----------- > Added examples x08a.adb, xthick08.adb, x09a.adb, xthick09a.adb. > > Modified Paths: > -------------- > trunk/examples/ada/CMakeLists.txt > trunk/examples/ada/Makefile.examples.in > > Added Paths: > ----------- > trunk/examples/ada/x08a.adb.cmake > trunk/examples/ada/x09a.adb.cmake > trunk/examples/ada/xthick08a.adb.cmake > trunk/examples/ada/xthick09a.adb.cmake Hi Jerry: Congratulations on your first svn commits to the PLplot repository. One svn quirk you should be aware of is file properties need to be set for your added files so they match the other examples. For example: svn proplist --verbose examples/ada/x05a.adb.cmake Properties on 'examples/ada/x05a.adb.cmake': svn:keywords : Author Date Id Revision svn:eol-style : native shows the correct properties set for the 5th example (which I originally committed), but if you try that command for x08a.adb.cmake, no properties are set yet. Please go ahead and set the file properties for your added files. (Use 'svn help; to find the various property commands, and read the on-line subversion book I recommended for understanding what the above properties actually do). Note there should be a way to configure your svn client so that all files you add to svn have the correct properties set by default. (I know how to do that for the Linux svn client, but you should ask Hazen how to do that for Mac OS X clients.) Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: <jb...@us...> - 2008-04-04 10:35:09
|
Revision: 8358 http://plplot.svn.sourceforge.net/plplot/?rev=8358&view=rev Author: jbauck Date: 2008-04-04 03:35:15 -0700 (Fri, 04 Apr 2008) Log Message: ----------- Set properties for the for new Ada examples in my last commit because tweaking things related to enable-auto-props in my ~/.subversion/config file failed to have any effect. Modified Paths: -------------- trunk/examples/ada/x11a.adb.cmake trunk/examples/ada/x13a.adb.cmake trunk/examples/ada/xthick11a.adb.cmake trunk/examples/ada/xthick13a.adb.cmake Property Changed: ---------------- trunk/examples/ada/x11a.adb.cmake trunk/examples/ada/x13a.adb.cmake trunk/examples/ada/xthick11a.adb.cmake trunk/examples/ada/xthick13a.adb.cmake Modified: trunk/examples/ada/x11a.adb.cmake =================================================================== --- trunk/examples/ada/x11a.adb.cmake 2008-04-04 10:19:06 UTC (rev 8357) +++ trunk/examples/ada/x11a.adb.cmake 2008-04-04 10:35:15 UTC (rev 8358) @@ -1,4 +1,4 @@ --- $Id: x11a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ +-- $Id$ -- Mesh plot demo. Property changes on: trunk/examples/ada/x11a.adb.cmake ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/examples/ada/x13a.adb.cmake =================================================================== --- trunk/examples/ada/x13a.adb.cmake 2008-04-04 10:19:06 UTC (rev 8357) +++ trunk/examples/ada/x13a.adb.cmake 2008-04-04 10:35:15 UTC (rev 8358) @@ -1,4 +1,4 @@ --- $Id: x13a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ +-- $Id$ -- Pie chart demo. Property changes on: trunk/examples/ada/x13a.adb.cmake ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/examples/ada/xthick11a.adb.cmake =================================================================== --- trunk/examples/ada/xthick11a.adb.cmake 2008-04-04 10:19:06 UTC (rev 8357) +++ trunk/examples/ada/xthick11a.adb.cmake 2008-04-04 10:35:15 UTC (rev 8358) @@ -1,4 +1,4 @@ --- $Id: x11a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ +-- $Id$ -- Mesh plot demo. Property changes on: trunk/examples/ada/xthick11a.adb.cmake ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/examples/ada/xthick13a.adb.cmake =================================================================== --- trunk/examples/ada/xthick13a.adb.cmake 2008-04-04 10:19:06 UTC (rev 8357) +++ trunk/examples/ada/xthick13a.adb.cmake 2008-04-04 10:35:15 UTC (rev 8358) @@ -1,4 +1,4 @@ --- $Id: xthick13a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ +-- $Id$ -- Pie chart demo. Property changes on: trunk/examples/ada/xthick13a.adb.cmake ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-06-27 18:40:40
|
Revision: 8494 http://plplot.svn.sourceforge.net/plplot/?rev=8494&view=rev Author: airwin Date: 2008-06-27 11:40:48 -0700 (Fri, 27 Jun 2008) Log Message: ----------- Parse command-line options for example 21 just as in all other examples. This fix is required so the build-tree and install-tree tests work properly. 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-06-27 18:38:20 UTC (rev 8493) +++ trunk/examples/ada/x21a.adb.cmake 2008-06-27 18:40:48 UTC (rev 8494) @@ -188,6 +188,9 @@ opt(3) := Long_Float(knn_order); opt(4) := threshold; + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + -- Initialize plplot plinit; Modified: trunk/examples/ada/xthick21a.adb.cmake =================================================================== --- trunk/examples/ada/xthick21a.adb.cmake 2008-06-27 18:38:20 UTC (rev 8493) +++ trunk/examples/ada/xthick21a.adb.cmake 2008-06-27 18:40:48 UTC (rev 8494) @@ -188,6 +188,9 @@ opt(3) := Long_Float(knn_order); opt(4) := threshold; + -- Parse and process command line arguments + Parse_Command_Line_Arguments(Parse_Full); + -- Initialize plplot Initialize_PLplot; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-07-05 02:23:16
|
Revision: 8506 http://plplot.svn.sourceforge.net/plplot/?rev=8506&view=rev Author: jbauck Date: 2008-07-04 19:23:25 -0700 (Fri, 04 Jul 2008) Log Message: ----------- Ada examples x12a.adb and xthick12a.adb now generate same Postscript data as x12c Modified Paths: -------------- trunk/examples/ada/x12a.adb.cmake trunk/examples/ada/xthick12a.adb.cmake Modified: trunk/examples/ada/x12a.adb.cmake =================================================================== --- trunk/examples/ada/x12a.adb.cmake 2008-07-04 22:54:49 UTC (rev 8505) +++ trunk/examples/ada/x12a.adb.cmake 2008-07-05 02:23:25 UTC (rev 8506) @@ -97,7 +97,7 @@ for i in y0'range loop plcol0(i + 1); - plpsty(1); + plpsty(0); plfbox((1980.0 + Long_Float(i)), y0(i)); plptex(1980.0 + Long_Float(i) + 0.5, y0(i) + 1.0, 1.0, 0.0, 0.5, Trim(Integer'image(Integer(y0(i))), Left)); plmtex("b", 1.0, (Long_Float(i) + 1.0) * 0.1 - 0.05, 0.5, Trim(Integer'image(1980 + i), Left)); Modified: trunk/examples/ada/xthick12a.adb.cmake =================================================================== --- trunk/examples/ada/xthick12a.adb.cmake 2008-07-04 22:54:49 UTC (rev 8505) +++ trunk/examples/ada/xthick12a.adb.cmake 2008-07-05 02:23:25 UTC (rev 8506) @@ -96,7 +96,7 @@ for i in y0'range loop Set_Pen_Color(i + 1); - Select_Fill_Pattern(1); + Select_Fill_Pattern(0); plfbox((1980.0 + Long_Float(i)), y0(i)); Write_Text_World(1980.0 + Long_Float(i) + 0.5, y0(i) + 1.0, 1.0, 0.0, 0.5, Trim(Integer'image(Integer(y0(i))), Left)); Write_Text_Viewport("b", 1.0, (Long_Float(i) + 1.0) * 0.1 - 0.05, 0.5, Trim(Integer'image(1980 + i), Left)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2008-07-11 04:54:44
|
Revision: 8513 http://plplot.svn.sourceforge.net/plplot/?rev=8513&view=rev Author: jbauck Date: 2008-07-10 21:54:54 -0700 (Thu, 10 Jul 2008) Log Message: ----------- Ada examples 29 now use Ada.Calendar for time calculations. 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-07-10 11:14:50 UTC (rev 8512) +++ trunk/examples/ada/x29a.adb.cmake 2008-07-11 04:54:54 UTC (rev 8513) @@ -23,11 +23,13 @@ with Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, + Ada.Calendar, PLplot_Traditional, PLplot_Auxiliary; use Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, + Ada.Calendar, PLplot_Traditional, PLplot_Auxiliary; @@ -130,14 +132,10 @@ xmin, xmax, ymin, ymax : Long_Float; x, y : Real_Vector(0 .. 61); begin - -- The C version of this example accesses time.h. Ada's Calendar package - -- would surely work here, but let's just take the same shortcut as is used - -- in several of the other versions of this example in other languages. - -- However, the correct value for xmin here is 1_133_395_200.0 not - -- 1_133_398_800.0 as in those examples. + -- Find the number of seconds since January 1, 1970 to December 12, 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)); - xmin := 1_133_395_200.0; - xmax := xmin + Long_Float(x'length) * 60.0 * 60.0 * 24.0; ymin := 0.0; ymax := 5.0; Modified: trunk/examples/ada/xthick29a.adb.cmake =================================================================== --- trunk/examples/ada/xthick29a.adb.cmake 2008-07-10 11:14:50 UTC (rev 8512) +++ trunk/examples/ada/xthick29a.adb.cmake 2008-07-11 04:54:54 UTC (rev 8513) @@ -23,11 +23,13 @@ with Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, + Ada.Calendar, PLplot, PLplot_Auxiliary; use Ada.Numerics, Ada.Numerics.Long_Elementary_Functions, + Ada.Calendar, PLplot, PLplot_Auxiliary; @@ -117,14 +119,10 @@ xmin, xmax, ymin, ymax : Long_Float; x, y : Real_Vector(0 .. 61); begin - -- The C version of this example accesses time.h. Ada's Calendar package - -- would surely work here, but let's just take the same shortcut as is used - -- in several of the other versions of this example in other languages. - -- However, the correct value for xmin here is 1_133_395_200.0 not - -- 1_133_398_800.0 as in those examples. + -- Find the number of seconds since January 1, 1970 to December 12, 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)); - xmin := 1_133_395_200.0; - xmax := xmin + Long_Float(x'length) * 60.0 * 60.0 * 24.0; ymin := 0.0; ymax := 5.0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |