From: <ai...@us...> - 2008-08-15 00:30:20
|
Revision: 8660 http://plplot.svn.sourceforge.net/plplot/?rev=8660&view=rev Author: airwin Date: 2008-08-15 00:30:29 +0000 (Fri, 15 Aug 2008) Log Message: ----------- AWI for Hezekiah M. Carty. Add 10th, 12th, and 13th standard examples. Their results agree exactly with the corresponding C results. Modified Paths: -------------- trunk/examples/ocaml/CMakeLists.txt trunk/examples/ocaml/Makefile.examples.in trunk/plplot_test/test_ocaml.sh.in Added Paths: ----------- trunk/examples/ocaml/x10.ml trunk/examples/ocaml/x12.ml trunk/examples/ocaml/x13.ml Modified: trunk/examples/ocaml/CMakeLists.txt =================================================================== --- trunk/examples/ocaml/CMakeLists.txt 2008-08-15 00:28:15 UTC (rev 8659) +++ trunk/examples/ocaml/CMakeLists.txt 2008-08-15 00:30:29 UTC (rev 8660) @@ -29,7 +29,10 @@ "06" "07" "08" + "10" "11" + "12" + "13" "19" ) Modified: trunk/examples/ocaml/Makefile.examples.in =================================================================== --- trunk/examples/ocaml/Makefile.examples.in 2008-08-15 00:28:15 UTC (rev 8659) +++ trunk/examples/ocaml/Makefile.examples.in 2008-08-15 00:30:29 UTC (rev 8660) @@ -36,7 +36,10 @@ x06$(EXEEXT) \ x07$(EXEEXT) \ x08$(EXEEXT) \ + x10$(EXEEXT) \ x11$(EXEEXT) \ + x12$(EXEEXT) \ + x13$(EXEEXT) \ x19$(EXEEXT) \ all: $(EXECUTABLES_list) Added: trunk/examples/ocaml/x10.ml =================================================================== --- trunk/examples/ocaml/x10.ml (rev 0) +++ trunk/examples/ocaml/x10.ml 2008-08-15 00:30:29 UTC (rev 8660) @@ -0,0 +1,28 @@ +(* $Id$ + + Window positioning demo. +*) + +open Plplot + +(*--------------------------------------------------------------------------*\ + * Demonstrates absolute positioning of graphs on a page. +\*--------------------------------------------------------------------------*) +let () = + (* Parse and process command line arguments *) + ignore (plparseopts Sys.argv [|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 (); + () Property changes on: trunk/examples/ocaml/x10.ml ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/examples/ocaml/x12.ml =================================================================== --- trunk/examples/ocaml/x12.ml (rev 0) +++ trunk/examples/ocaml/x12.ml 2008-08-15 00:30:29 UTC (rev 8660) @@ -0,0 +1,50 @@ +(* $Id$ + Bar chart demo. +*) + +open Plplot + +let plfbox x0 y0 = + let x = [|x0; x0; x0 +. 1.0; x0 +. 1.0|] in + let y = [|0.0; y0; y0; 0.0|] in + plfill x y; + plcol0 1; + pllsty 1; + plline x y; + () + +(*--------------------------------------------------------------------------*\ + * Does a simple bar chart, using color fill. If color fill is + * unavailable, pattern fill is used instead (automatic). +\*--------------------------------------------------------------------------*) + +let () = + (* Parse and process command line arguments *) + ignore (plparseopts Sys.argv [|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"; + + let y0 = [|5.0; 15.0; 12.0; 24.0; 28.0; 30.0; 20.0; 8.0; 12.0; 3.0|] in + + for i = 0 to 9 do + plcol0 (i + 1); + plpsty 0; + plfbox (1980.0 +. float_of_int i) y0.(i); + let text = Printf.sprintf "%.0f" y0.(i) in + plptex (1980.0 +. float_of_int i +. 0.5) (y0.(i) +. 1.0) 1.0 0.0 0.5 text; + let text = string_of_int (1980 + i) in + plmtex "b" 1.0 (float_of_int (i + 1) *. 0.1 -. 0.05) 0.5 text; + done; + + (* Don't forget to call plend() to finish off! *) + plend (); + () + Property changes on: trunk/examples/ocaml/x12.ml ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/examples/ocaml/x13.ml =================================================================== --- trunk/examples/ocaml/x13.ml (rev 0) +++ trunk/examples/ocaml/x13.ml 2008-08-15 00:30:29 UTC (rev 8660) @@ -0,0 +1,80 @@ +(* $Id$ + Pie chart demo. +*) + +open Plplot + +let pi = atan 1.0 *. 4.0 + +let text = [| + "Maurice"; + "Geoffrey"; + "Alan"; + "Rafael"; + "Vince"; +|] + +(*--------------------------------------------------------------------------*\ + * Does a simple pie chart. +\*--------------------------------------------------------------------------*) + +let () = + let x = Array.make 500 0.0 in + let y = Array.make 500 0.0 in + let per = [|10.0; 32.0; 12.0; 30.0; 16.0|] in + + (* Parse and process command line arguments *) + ignore (plparseopts Sys.argv [|PL_PARSE_FULL|]); + + (* Initialize plplot *) + plinit (); + + plenv 0.0 10.0 0.0 10.0 1 (-2); + plcol0 2; + (* All theta quantities scaled by 2*M_PI/500 to be integers to avoid + floating point logic problems. *) + let theta0 = ref 0 in + for i = 0 to 4 do + let j = ref 0 in + x.(!j) <- 5.0; + y.(!j) <- 5.0; + incr j; + (* Theta quantities multiplied by 2*M_PI/500 afterward so + in fact per is interpreted as a percentage. *) + let theta1 = + if i = 4 then + 500 + else + int_of_float (float_of_int !theta0 +. 5.0 *. per.(i)) + in + for theta = !theta0 to theta1 do + x.(!j) <- 5.0 +. 3.0 *. cos ((2.0 *. pi /. 500.0) *. float_of_int theta); + y.(!j) <- 5.0 +. 3.0 *. sin ((2.0 *. pi /. 500.0) *. float_of_int theta); + incr j; + done; + let x' = Array.sub x 0 !j in + let y' = Array.sub y 0 !j in + plcol0 (i + 1); + plpsty ((i + 3) mod 8 + 1); + plfill x' y'; + plcol0 1; + plline x' y'; + let just = (2.0 *. pi /. 500.0) *. float_of_int (!theta0 + theta1) /. 2.0 in + let dx = 0.25 *. cos just in + let dy = 0.25 *. sin just in + let just = + if (!theta0 + theta1 < 250 || !theta0 + theta1 > 750) then + 0.0 + else + 1.0 + in + plptex (x.(!j / 2) +. dx) (y.(!j / 2) +. dy) 1.0 0.0 just text.(i); + theta0 := theta1; + done; + plfont 2; + plschr 0.0 1.3; + plptex 5.0 9.0 1.0 0.0 0.5 "Percentage of Sales"; + + (* Don't forget to call PLEND to finish off! *) + plend (); + () Property changes on: trunk/examples/ocaml/x13.ml ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/plplot_test/test_ocaml.sh.in =================================================================== --- trunk/plplot_test/test_ocaml.sh.in 2008-08-15 00:28:15 UTC (rev 8659) +++ trunk/plplot_test/test_ocaml.sh.in 2008-08-15 00:30:29 UTC (rev 8660) @@ -23,7 +23,7 @@ # $options, and possibly $verbose_test defined. # Do the standard non-interactive examples. -for index in 01 02 03 04 05 06 07 08 11 19; do +for index in 01 02 03 04 05 06 07 08 10 11 12 13 19; do if [ "$verbose_test" ]; then echo "x${index}ocaml" fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |