From: <sm...@us...> - 2009-03-09 21:58:42
|
Revision: 9689 http://plplot.svn.sourceforge.net/plplot/?rev=9689&view=rev Author: smekal Date: 2009-03-09 21:58:26 +0000 (Mon, 09 Mar 2009) Log Message: ----------- Added new D example 11. Added Makefile.examples.in to be configured by cmake and copied in the install tree. Modified CMakeLists.txt so that the D examples get compiled when BUILD_TEST is ON. Modified Paths: -------------- trunk/examples/d/CMakeLists.txt trunk/examples/d/x08d.d Added Paths: ----------- trunk/examples/d/Makefile.examples.in trunk/examples/d/x11d.d Modified: trunk/examples/d/CMakeLists.txt =================================================================== --- trunk/examples/d/CMakeLists.txt 2009-03-09 21:28:40 UTC (rev 9688) +++ trunk/examples/d/CMakeLists.txt 2009-03-09 21:58:26 UTC (rev 9689) @@ -26,25 +26,35 @@ "07" "08" "10" +"11" "12" "13" ) +if(BUILD_TEST) + include_directories( + ${CMAKE_SOURCE_DIR}/bindings/d + ) +endif(BUILD_TEST) foreach(STRING_INDEX ${d_STRING_INDICES}) set(d_SRCS ${d_SRCS} x${STRING_INDEX}d.d) + if(BUILD_TEST) + add_executable(x${STRING_INDEX}d x${STRING_INDEX}d.d) + target_link_libraries(x${STRING_INDEX}d plplot${LIB_TAG}) + endif(BUILD_TEST) endforeach(STRING_INDEX ${d_STRING_INDICES}) install(FILES ${d_SRCS} -DESTINATION ${DATA_DIR}/examples/d + DESTINATION ${DATA_DIR}/examples/d ) -#set(DD ${CMAKE_D_COMPILER}) -#configure_file( -#${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in -#${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples -#) +set(DC ${CMAKE_D_COMPILER}) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in + ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples +) -#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples -#DESTINATION ${DATA_DIR}/examples/d -#RENAME Makefile -#) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + DESTINATION ${DATA_DIR}/examples/d + RENAME Makefile +) Added: trunk/examples/d/Makefile.examples.in =================================================================== --- trunk/examples/d/Makefile.examples.in (rev 0) +++ trunk/examples/d/Makefile.examples.in 2009-03-09 21:58:26 UTC (rev 9689) @@ -0,0 +1,46 @@ +# examples/d/Makefile.examples.in for PLplot +### +### Process this file with configure to produce Makefile.examples +### +# Copyright (C) 2008 Werner Smekal +# +# This file is part of PLplot. +# +# PLplot is free software; you can redistribute it and/or modify +# it under the terms of the GNU Library General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# PLplot is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public License +# along with the file PLplot; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +DC = @DC@ +EXEEXT = @EXEEXT@ +D_INSTDIR = @D_INSTDIR@ +INSTDIR = @INSTDIR@ + +EXECUTABLES_list = \ + x03d$(EXEEXT) \ + x04d$(EXEEXT) \ + x05d$(EXEEXT) \ + x06d$(EXEEXT) \ + x07d$(EXEEXT) \ + x08d$(EXEEXT) \ + x10d$(EXEEXT) \ + x12d$(EXEEXT) \ + x13d$(EXEEXT) \ + +all: $(EXECUTABLES_list) + +clean: + rm -f $(EXECUTABLES_list) + +.d$(EXEEXT): +$(DC) $< -o $@ -I$(D_INSTDIR) $(INSTDIR)/libplplotd.so + +.SUFFIXES: .d $(EXEEXT) Property changes on: trunk/examples/d/Makefile.examples.in ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x08d.d =================================================================== --- trunk/examples/d/x08d.d 2009-03-09 21:28:40 UTC (rev 9688) +++ trunk/examples/d/x08d.d 2009-03-09 21:58:26 UTC (rev 9689) @@ -103,7 +103,7 @@ PLFLT[] az = [ 30.0, 60.0 ]; char[] title[] = [ "#frPLplot Example 8 - Alt=60, Az=30", - "#frPLplot Example 8 - Alt=20, Az=60" ]; + "#frPLplot Example 8 - Alt=20, Az=60" ]; /* Parse and process command line arguments */ plMergeOpts( cast(PLOptionTable*)options, "x08c options", null ); Added: trunk/examples/d/x11d.d =================================================================== --- trunk/examples/d/x11d.d (rev 0) +++ trunk/examples/d/x11d.d 2009-03-09 21:58:26 UTC (rev 9689) @@ -0,0 +1,153 @@ +/* + + Mesh plot demo. + + Copyright (C) 2008 Werner Smekal + Copyright (C) 2004 Rafael Laboissiere + + 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 +*/ + +import plplot; +import std.string; +import std.math; + + +void cmap1_init() +{ + PLFLT[2] i, h, l, s; + + i[] = [ 0.0, 1.0 ]; /* boundaries */ + h[] = [ 240.0, 0.0 ]; /* blue -> green -> yellow -> red */ + l[] = [ 0.6, 0.6 ]; + s[] = [ 0.8, 0.8 ]; + + plscmap1n( 256 ); + c_plscmap1l( 0, 2, cast(PLFLT*)i, cast(PLFLT*)h, cast(PLFLT*)l, + cast(PLFLT*)s, null ); +} + + +/*--------------------------------------------------------------------------*\ + * main + * + * Does a series of mesh plots for a given data set, with different + * viewing options in each plot. +\*--------------------------------------------------------------------------*/ +int main( char[][] args ) +{ + const nlevel=10; + const XPTS=35; /* Data points in x */ + const YPTS=46; /* Data points in y */ + + int[] opt = [ DRAW_LINEXY, DRAW_LINEXY ]; + + PLFLT[] alt = [ 33.0, 17.0 ]; + PLFLT[] az = [ 24.0, 115.0 ]; + + char[] title[] = [ "#frPLplot Example 11 - Alt=33, Az=24, Opt=3", + "#frPLplot Example 11 - Alt=17, Az=115, Opt=3" ]; + + PLFLT[XPTS] x; + PLFLT[YPTS] y; + PLFLT** z; + PLFLT xx, yy; + PLFLT[nlevel] clevel; + PLFLT zmin, zmax, step; + + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + /* Initialize plplot */ + plinit(); + + plAlloc2dGrid( &z, XPTS, YPTS ); + for( int i=0; i<XPTS; i++ ) + x[i] = 3.*cast(PLFLT)(i-(XPTS/2))/cast(PLFLT)(XPTS/2); + + for( int i=0; i<YPTS; i++ ) + y[i] = 3.*cast(PLFLT)(i-(YPTS/2))/cast(PLFLT)(YPTS/2); + + for( size_t i=0; i<XPTS; i++ ) { + xx = x[i]; + for( size_t j=0; j<YPTS; j++ ) { + yy = y[j]; + z[i][j] = 3.*(1.-xx)*(1.-xx)*exp(-(xx*xx)-(yy+1.)*(yy+1.))- + 10.*(xx/5.- pow(xx,3.)-pow(yy,5.))*exp(-xx*xx-yy*yy)- + 1./3.*exp(-(xx+1)*(xx+1)-(yy*yy)); + + if( 0 ) { /* Jungfraujoch/Interlaken */ + if( z[i][j]<-1. ) + z[i][j] = -1.; + } + } + } + + plMinMax2dGrid( z, XPTS, YPTS, &zmax, &zmin ); + step = (zmax-zmin)/(nlevel+1); + for( size_t i=0; i<nlevel; i++ ) + clevel[i] = zmin+step+step*i; + + cmap1_init(); + for( size_t k=0; k<2; k++ ) { + for( size_t i=0; i<4; i++ ) { + pladv( 0 ); + plcol0( 1 ); + plvpor( 0.0, 1.0, 0.0, 0.9 ); + plwind( -1.0, 1.0, -1.0, 1.5 ); + plw3d( 1.0, 1.0, 1.2, -3.0, 3.0, -3.0, 3.0, zmin, zmax, alt[k], az[k] ); + plbox3( "bnstu", "x axis", 0.0, 0, + "bnstu", "y axis", 0.0, 0, + "bcdmnstuv", "z axis", 0.0, 4 ); + + plcol0( 2 ); + switch( i ) { + case 0: + /* wireframe plot */ + plmesh( cast(PLFLT*)x, cast(PLFLT*)y, z, XPTS, YPTS, opt[k] ); + break; + case 1: + /* magnitude colored wireframe plot */ + plmesh( cast(PLFLT*)x, cast(PLFLT*)y, z, XPTS, YPTS, opt[k] | MAG_COLOR ); + break; + case 2: + /* magnitude colored wireframe plot with sides */ + plot3d( cast(PLFLT*)x, cast(PLFLT*)y, z, XPTS, YPTS, opt[k] | MAG_COLOR, 1 ); + break; + case 3: + /* magnitude colored wireframe plot with base contour */ + plmeshc( cast(PLFLT*)x, cast(PLFLT*)y, z, XPTS, YPTS, opt[k] | MAG_COLOR | BASE_CONT, + cast(PLFLT*)clevel, nlevel ); + break; + } + + plcol0( 3 ); + plmtex( "t", 1.0, 0.5, 0.5, toStringz(title[k]) ); + } + } + + /* Clean up */ + plFree2dGrid( z, XPTS, YPTS ); + + plend(); + return 0; +} Property changes on: trunk/examples/d/x11d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-03-09 22:24:05
|
Revision: 9695 http://plplot.svn.sourceforge.net/plplot/?rev=9695&view=rev Author: smekal Date: 2009-03-09 22:23:53 +0000 (Mon, 09 Mar 2009) Log Message: ----------- Fixed svn properties and line ending issues. Modified Paths: -------------- trunk/examples/d/CMakeLists.txt trunk/examples/d/x05d.d trunk/examples/d/x07d.d trunk/examples/d/x08d.d trunk/examples/d/x10d.d trunk/examples/d/x12d.d trunk/examples/d/x13d.d Property Changed: ---------------- trunk/examples/d/CMakeLists.txt trunk/examples/d/x03d.d trunk/examples/d/x04d.d trunk/examples/d/x05d.d trunk/examples/d/x06d.d trunk/examples/d/x07d.d trunk/examples/d/x08d.d trunk/examples/d/x10d.d trunk/examples/d/x12d.d trunk/examples/d/x13d.d Modified: trunk/examples/d/CMakeLists.txt =================================================================== --- trunk/examples/d/CMakeLists.txt 2009-03-09 22:19:06 UTC (rev 9694) +++ trunk/examples/d/CMakeLists.txt 2009-03-09 22:23:53 UTC (rev 9695) @@ -1,60 +1,60 @@ -# examples/d/CMakeLists.txt -### Process this file with cmake to produce Makefile -### -# Copyright (C) 2008 Werner Smekal -# -# This file is part of PLplot. -# -# PLplot is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; version 2 of the License. -# -# PLplot is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with PLplot; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -set(d_STRING_INDICES -"03" -"04" -"05" -"06" -"07" -"08" -"10" -"11" -"12" -"13" -) - -if(BUILD_TEST) - include_directories( - ${CMAKE_SOURCE_DIR}/bindings/d - ) -endif(BUILD_TEST) -foreach(STRING_INDEX ${d_STRING_INDICES}) - set(d_SRCS ${d_SRCS} x${STRING_INDEX}d.d) - if(BUILD_TEST) - add_executable(x${STRING_INDEX}d x${STRING_INDEX}d.d) - target_link_libraries(x${STRING_INDEX}d plplot${LIB_TAG}) - endif(BUILD_TEST) -endforeach(STRING_INDEX ${d_STRING_INDICES}) - -install(FILES ${d_SRCS} - DESTINATION ${DATA_DIR}/examples/d -) - -set(DC ${CMAKE_D_COMPILER}) -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in - ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples -) - -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples - DESTINATION ${DATA_DIR}/examples/d - RENAME Makefile -) +# examples/d/CMakeLists.txt +### Process this file with cmake to produce Makefile +### +# Copyright (C) 2008 Werner Smekal +# +# This file is part of PLplot. +# +# PLplot is free software; you can redistribute it and/or modify +# it under the terms of the GNU Library General Public License as published +# by the Free Software Foundation; version 2 of the License. +# +# PLplot is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public License +# along with PLplot; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +set(d_STRING_INDICES +"03" +"04" +"05" +"06" +"07" +"08" +"10" +"11" +"12" +"13" +) + +if(BUILD_TEST) + include_directories( + ${CMAKE_SOURCE_DIR}/bindings/d + ) +endif(BUILD_TEST) +foreach(STRING_INDEX ${d_STRING_INDICES}) + set(d_SRCS ${d_SRCS} x${STRING_INDEX}d.d) + if(BUILD_TEST) + add_executable(x${STRING_INDEX}d x${STRING_INDEX}d.d) + target_link_libraries(x${STRING_INDEX}d plplot${LIB_TAG}) + endif(BUILD_TEST) +endforeach(STRING_INDEX ${d_STRING_INDICES}) + +install(FILES ${d_SRCS} + DESTINATION ${DATA_DIR}/examples/d +) + +set(DC ${CMAKE_D_COMPILER}) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in + ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples +) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + DESTINATION ${DATA_DIR}/examples/d + RENAME Makefile +) Property changes on: trunk/examples/d/CMakeLists.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Property changes on: trunk/examples/d/x03d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Property changes on: trunk/examples/d/x04d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x05d.d =================================================================== --- trunk/examples/d/x05d.d 2009-03-09 22:19:06 UTC (rev 9694) +++ trunk/examples/d/x05d.d 2009-03-09 22:23:53 UTC (rev 9695) @@ -1,24 +1,24 @@ -/* $Id: - - Histogram demo. -*/ - -import plplot; +/* $Id: + + Histogram demo. +*/ + +import plplot; import std.math; -import std.string; - -/*--------------------------------------------------------------------------*\ - * main - * - * Draws a histogram from sample data. -\*--------------------------------------------------------------------------*/ -int main( char[][] args ) -{ - const int NPTS=2047; - - PLFLT[NPTS] data; - PLFLT delta; - +import std.string; + +/*--------------------------------------------------------------------------*\ + * main + * + * Draws a histogram from sample data. +\*--------------------------------------------------------------------------*/ +int main( char[][] args ) +{ + const int NPTS=2047; + + PLFLT[NPTS] data; + PLFLT delta; + /* Parse and process command line arguments */ char*[] c_args = new char*[args.length]; foreach( size_t i, char[] arg; args ) { @@ -26,23 +26,23 @@ } int argc = c_args.length; plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); - - /* Initialize plplot */ - plinit(); - - /* Fill up data points */ - - delta = 2.0 * PI / cast(double)NPTS; - for( size_t i=0; i<NPTS; i++ ) - data[i] = sin(i*delta); - - plcol0( 1 ); - plhist( NPTS, &data[0], -1.1, 1.1, 44, 0 ); - plcol0( 2 ); - pllab( "#frValue", "#frFrequency", - "#frPLplot Example 5 - Probability function of Oscillator" ); - - plend(); - - return 0; -} + + /* Initialize plplot */ + plinit(); + + /* Fill up data points */ + + delta = 2.0 * PI / cast(double)NPTS; + for( size_t i=0; i<NPTS; i++ ) + data[i] = sin(i*delta); + + plcol0( 1 ); + plhist( NPTS, &data[0], -1.1, 1.1, 44, 0 ); + plcol0( 2 ); + pllab( "#frValue", "#frFrequency", + "#frPLplot Example 5 - Probability function of Oscillator" ); + + plend(); + + return 0; +} Property changes on: trunk/examples/d/x05d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Property changes on: trunk/examples/d/x06d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x07d.d =================================================================== --- trunk/examples/d/x07d.d 2009-03-09 22:19:06 UTC (rev 9694) +++ trunk/examples/d/x07d.d 2009-03-09 22:23:53 UTC (rev 9695) @@ -1,25 +1,25 @@ -/* - - Font demo. -*/ - -import plplot; -import std.string; - -int[17] base = [ 0, 200, 500, 600, 700, 800, 900, - 2000, 2100, 2200, 2300, 2400, 2500, 2600, - 2700, 2800, 2900]; - -/*--------------------------------------------------------------------------*\ - * main - * - * Displays the entire "plsym" symbol (font) set. -\*--------------------------------------------------------------------------*/ -int main( char[][] args ) -{ - char[] text; - PLFLT x, y; - +/* + + Font demo. +*/ + +import plplot; +import std.string; + +int[17] base = [ 0, 200, 500, 600, 700, 800, 900, + 2000, 2100, 2200, 2300, 2400, 2500, 2600, + 2700, 2800, 2900]; + +/*--------------------------------------------------------------------------*\ + * main + * + * Displays the entire "plsym" symbol (font) set. +\*--------------------------------------------------------------------------*/ +int main( char[][] args ) +{ + char[] text; + PLFLT x, y; + /* Parse and process command line arguments */ char*[] c_args = new char*[args.length]; foreach( size_t i, char[] arg; args ) { @@ -27,46 +27,46 @@ } int argc = c_args.length; plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); - - /* Initialize plplot */ - plinit(); - - plfontld( 1 ); - for( size_t l=0; l<17; l++) { - pladv( 0 ); - - /* Set up viewport and window */ - plcol0( 2 ); - plvpor( 0.15, 0.95, 0.1, 0.9 ); - plwind( 0.0, 1.0, 0.0, 1.0 ); - - /* Draw the grid using plbox */ - plbox( "bcg", 0.1, 0, "bcg", 0.1, 0 ); - - /* Write the digits below the frame */ - plcol0( 15 ); - for( size_t i=0; i<=9; i++ ) { - text=format( "%d", i); - plmtex( "b", 1.5, (0.1*i+0.05), 0.5, toStringz(text) ); - } - - size_t k = 0; - for( size_t i=0; i<=9; i++ ) { - /* Write the digits to the left of the frame */ - text=format( "%d", base[l] + 10 * i ); - plmtex( "lv", 1.0, (0.95-0.1*i), 1.0, toStringz(text) ); - for( size_t j=0; j<=9; j++ ) { - x = 0.1*j+0.05; - y = 0.95-0.1*i; - - /* Display the symbols */ - plsym( 1, &x, &y, base[l]+k ); - k = k+1; - } - } - - plmtex( "t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols" ); - } - plend(); - return 0; -} + + /* Initialize plplot */ + plinit(); + + plfontld( 1 ); + for( size_t l=0; l<17; l++) { + pladv( 0 ); + + /* Set up viewport and window */ + plcol0( 2 ); + plvpor( 0.15, 0.95, 0.1, 0.9 ); + plwind( 0.0, 1.0, 0.0, 1.0 ); + + /* Draw the grid using plbox */ + plbox( "bcg", 0.1, 0, "bcg", 0.1, 0 ); + + /* Write the digits below the frame */ + plcol0( 15 ); + for( size_t i=0; i<=9; i++ ) { + text=format( "%d", i); + plmtex( "b", 1.5, (0.1*i+0.05), 0.5, toStringz(text) ); + } + + size_t k = 0; + for( size_t i=0; i<=9; i++ ) { + /* Write the digits to the left of the frame */ + text=format( "%d", base[l] + 10 * i ); + plmtex( "lv", 1.0, (0.95-0.1*i), 1.0, toStringz(text) ); + for( size_t j=0; j<=9; j++ ) { + x = 0.1*j+0.05; + y = 0.95-0.1*i; + + /* Display the symbols */ + plsym( 1, &x, &y, base[l]+k ); + k = k+1; + } + } + + plmtex( "t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols" ); + } + plend(); + return 0; +} Property changes on: trunk/examples/d/x07d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x08d.d =================================================================== --- trunk/examples/d/x08d.d 2009-03-09 22:19:06 UTC (rev 9694) +++ trunk/examples/d/x08d.d 2009-03-09 22:23:53 UTC (rev 9695) @@ -1,216 +1,216 @@ -/* - - 3-d plot demo. - - Copyright (C) 2008 Werner Smekal - Copyright (C) 2004 Alan W. Irwin - Copyright (C) 2004 Rafael Laboissiere - - 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 -*/ - -import plplot; -import std.string; -import std.math; -import std.c.stdlib; - -int sombrero; - -PLOptionTable[] options = [ - { - "sombrero", /* Turns on use of Sombrero function */ - null, - null, - &sombrero, - PL_OPT_BOOL, - "-sombrero", - "Use the \"sombrero\" function." }, - { - null, /* option */ - null, /* handler */ - null, /* client data */ - null, /* address of variable to set */ - 0, /* mode flag */ - null, /* short syntax */ - null } /* long syntax */ -]; - -/*--------------------------------------------------------------------------*\ - * 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 -\*--------------------------------------------------------------------------*/ -void cmap1_init( bool gray ) -{ - PLFLT[2] i, h, l, s; - - i[] = [ 0.0, 1.0 ]; /* boundaries */ - - if( gray ) { - h[] = [ 0.0, 0.0 ]; /* hue -- low: red (arbitrary if s=0), high: red (arbitrary if s=0) */ - l[] = [ 0.5, 1.0]; /* lightness -- low: half-dark, high: light */ - s[] = [ 0.0, 0.0 ]; /* minimum saturation */ - } else { - h[] = [ 240.0, 0.0 ]; /* blue -> green -> yellow -> red */ - l[] = [ 0.6, 0.6 ]; - s[] = [ 0.8, 0.8 ]; - } - - plscmap1n( 256 ); - c_plscmap1l( 0, 2, cast(PLFLT*)i, cast(PLFLT*)h, cast(PLFLT*)l, - cast(PLFLT*)s, null ); -} - - -/*--------------------------------------------------------------------------*\ - * main - * - * Does a series of 3-d plots for a given data set, with different - * viewing options in each plot. -\*--------------------------------------------------------------------------*/ -int main( char[][] args ) -{ - const nlevel=10; - const XPTS=35; /* Data points in x */ - const YPTS=46; /* Data points in y */ - - PLFLT* x, y; - PLFLT** z; - PLFLT xx, yy, r; - PLFLT zmin, zmax, step; - PLFLT[nlevel] clevel; - bool rosen=true; - - PLFLT[] alt = [ 60.0, 20.0 ]; - PLFLT[] az = [ 30.0, 60.0 ]; - - char[] title[] = [ "#frPLplot Example 8 - Alt=60, Az=30", - "#frPLplot Example 8 - Alt=20, Az=60" ]; - - /* Parse and process command line arguments */ - plMergeOpts( cast(PLOptionTable*)options, "x08c options", null ); - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); - if( sombrero ) - rosen=false; - - /* Initialize plplot */ - plinit(); - - /* Allocate data structures */ - x = cast(PLFLT*)std.c.stdlib.calloc( XPTS, PLFLT.sizeof ); - y = cast(PLFLT*)std.c.stdlib.calloc( YPTS, PLFLT.sizeof ); - - plAlloc2dGrid( &z, XPTS, YPTS ); - - for( int i=0; i<XPTS; i++) { - x[i] = (cast(PLFLT)(i-(XPTS/2))/cast(PLFLT)(XPTS/2)); - if( rosen ) - x[i] *= 1.5; - } - - for( int i=0; i<YPTS; i++ ) { - y[i] = cast(PLFLT)(i-(YPTS/2))/cast(PLFLT)(YPTS/2); - if( rosen ) - y[i] += 0.5; - } - - for( size_t i=0; i<XPTS; i++ ) { - xx = x[i]; - for( size_t j=0; j<YPTS; j++ ) { - yy = y[j]; - if( rosen ) { - z[i][j] = pow(1.-xx, 2.)+100.*pow(yy-pow(xx, 2.), 2.); - /* The log argument may be zero for just the right grid. */ - if( z[i][j]>0. ) - z[i][j] = log(z[i][j]); - else - z[i][j] = -5.; /* -MAXFLOAT would mess-up up the scale */ - } else { - r = sqrt(xx*xx+yy*yy); - z[i][j] = exp(-r*r)*cos(2.0*PI*r); - } - } - } - - plMinMax2dGrid( z, XPTS, YPTS, &zmax, &zmin ); - step = (zmax-zmin)/(nlevel+1); - for( size_t i=0; i<nlevel; i++ ) - clevel[i] = zmin+step+step*i; - - pllightsource( 1.,1.,1. ); - - for( size_t k=0; k<2; k++ ) { - for( size_t ifshade=0; ifshade<4; ifshade++ ) { - 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, toStringz(title[k]) ); - plcol0( 1 ); - if( rosen ) - 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] ); - - plbox3( "bnstu", "x axis", 0.0, 0, - "bnstu", "y axis", 0.0, 0, - "bcdmnstuv", "z axis", 0.0, 0 ); - plcol0( 2 ); - - switch( ifshade ) { - case 0: - /* diffuse light surface plot */ - cmap1_init( 1 ); - plsurf3d( x, y, z, XPTS, YPTS, 0, null, 0 ); - break; - case 1: - /* magnitude colored plot */ - cmap1_init( 0 ); - plsurf3d( x, y, z, XPTS, YPTS, MAG_COLOR, null, 0 ); - break; - case 2: - /* magnitude colored plot with faceted squares */ - cmap1_init( 0 ); - plsurf3d( x, y, z, XPTS, YPTS, MAG_COLOR | FACETED, null, 0 ); - break; - default: - /* magnitude colored plot with contours */ - cmap1_init( 0 ); - plsurf3d( x, y, z, XPTS, YPTS, MAG_COLOR | SURF_CONT | BASE_CONT, - cast(PLFLT*)clevel, nlevel ); - break; - } - } - } - - /* Clean up */ - std.c.stdlib.free( x ); - std.c.stdlib.free( y ); - plFree2dGrid( z, XPTS, YPTS ); - - plend(); - return 0; -} +/* + + 3-d plot demo. + + Copyright (C) 2008 Werner Smekal + Copyright (C) 2004 Alan W. Irwin + Copyright (C) 2004 Rafael Laboissiere + + 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 +*/ + +import plplot; +import std.string; +import std.math; +import std.c.stdlib; + +int sombrero; + +PLOptionTable[] options = [ + { + "sombrero", /* Turns on use of Sombrero function */ + null, + null, + &sombrero, + PL_OPT_BOOL, + "-sombrero", + "Use the \"sombrero\" function." }, + { + null, /* option */ + null, /* handler */ + null, /* client data */ + null, /* address of variable to set */ + 0, /* mode flag */ + null, /* short syntax */ + null } /* long syntax */ +]; + +/*--------------------------------------------------------------------------*\ + * 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 +\*--------------------------------------------------------------------------*/ +void cmap1_init( bool gray ) +{ + PLFLT[2] i, h, l, s; + + i[] = [ 0.0, 1.0 ]; /* boundaries */ + + if( gray ) { + h[] = [ 0.0, 0.0 ]; /* hue -- low: red (arbitrary if s=0), high: red (arbitrary if s=0) */ + l[] = [ 0.5, 1.0]; /* lightness -- low: half-dark, high: light */ + s[] = [ 0.0, 0.0 ]; /* minimum saturation */ + } else { + h[] = [ 240.0, 0.0 ]; /* blue -> green -> yellow -> red */ + l[] = [ 0.6, 0.6 ]; + s[] = [ 0.8, 0.8 ]; + } + + plscmap1n( 256 ); + c_plscmap1l( 0, 2, cast(PLFLT*)i, cast(PLFLT*)h, cast(PLFLT*)l, + cast(PLFLT*)s, null ); +} + + +/*--------------------------------------------------------------------------*\ + * main + * + * Does a series of 3-d plots for a given data set, with different + * viewing options in each plot. +\*--------------------------------------------------------------------------*/ +int main( char[][] args ) +{ + const nlevel=10; + const XPTS=35; /* Data points in x */ + const YPTS=46; /* Data points in y */ + + PLFLT* x, y; + PLFLT** z; + PLFLT xx, yy, r; + PLFLT zmin, zmax, step; + PLFLT[nlevel] clevel; + bool rosen=true; + + PLFLT[] alt = [ 60.0, 20.0 ]; + PLFLT[] az = [ 30.0, 60.0 ]; + + char[] title[] = [ "#frPLplot Example 8 - Alt=60, Az=30", + "#frPLplot Example 8 - Alt=20, Az=60" ]; + + /* Parse and process command line arguments */ + plMergeOpts( cast(PLOptionTable*)options, "x08c options", null ); + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + if( sombrero ) + rosen=false; + + /* Initialize plplot */ + plinit(); + + /* Allocate data structures */ + x = cast(PLFLT*)std.c.stdlib.calloc( XPTS, PLFLT.sizeof ); + y = cast(PLFLT*)std.c.stdlib.calloc( YPTS, PLFLT.sizeof ); + + plAlloc2dGrid( &z, XPTS, YPTS ); + + for( int i=0; i<XPTS; i++) { + x[i] = (cast(PLFLT)(i-(XPTS/2))/cast(PLFLT)(XPTS/2)); + if( rosen ) + x[i] *= 1.5; + } + + for( int i=0; i<YPTS; i++ ) { + y[i] = cast(PLFLT)(i-(YPTS/2))/cast(PLFLT)(YPTS/2); + if( rosen ) + y[i] += 0.5; + } + + for( size_t i=0; i<XPTS; i++ ) { + xx = x[i]; + for( size_t j=0; j<YPTS; j++ ) { + yy = y[j]; + if( rosen ) { + z[i][j] = pow(1.-xx, 2.)+100.*pow(yy-pow(xx, 2.), 2.); + /* The log argument may be zero for just the right grid. */ + if( z[i][j]>0. ) + z[i][j] = log(z[i][j]); + else + z[i][j] = -5.; /* -MAXFLOAT would mess-up up the scale */ + } else { + r = sqrt(xx*xx+yy*yy); + z[i][j] = exp(-r*r)*cos(2.0*PI*r); + } + } + } + + plMinMax2dGrid( z, XPTS, YPTS, &zmax, &zmin ); + step = (zmax-zmin)/(nlevel+1); + for( size_t i=0; i<nlevel; i++ ) + clevel[i] = zmin+step+step*i; + + pllightsource( 1.,1.,1. ); + + for( size_t k=0; k<2; k++ ) { + for( size_t ifshade=0; ifshade<4; ifshade++ ) { + 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, toStringz(title[k]) ); + plcol0( 1 ); + if( rosen ) + 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] ); + + plbox3( "bnstu", "x axis", 0.0, 0, + "bnstu", "y axis", 0.0, 0, + "bcdmnstuv", "z axis", 0.0, 0 ); + plcol0( 2 ); + + switch( ifshade ) { + case 0: + /* diffuse light surface plot */ + cmap1_init( 1 ); + plsurf3d( x, y, z, XPTS, YPTS, 0, null, 0 ); + break; + case 1: + /* magnitude colored plot */ + cmap1_init( 0 ); + plsurf3d( x, y, z, XPTS, YPTS, MAG_COLOR, null, 0 ); + break; + case 2: + /* magnitude colored plot with faceted squares */ + cmap1_init( 0 ); + plsurf3d( x, y, z, XPTS, YPTS, MAG_COLOR | FACETED, null, 0 ); + break; + default: + /* magnitude colored plot with contours */ + cmap1_init( 0 ); + plsurf3d( x, y, z, XPTS, YPTS, MAG_COLOR | SURF_CONT | BASE_CONT, + cast(PLFLT*)clevel, nlevel ); + break; + } + } + } + + /* Clean up */ + std.c.stdlib.free( x ); + std.c.stdlib.free( y ); + plFree2dGrid( z, XPTS, YPTS ); + + plend(); + return 0; +} Property changes on: trunk/examples/d/x08d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x10d.d =================================================================== --- trunk/examples/d/x10d.d 2009-03-09 22:19:06 UTC (rev 9694) +++ trunk/examples/d/x10d.d 2009-03-09 22:23:53 UTC (rev 9695) @@ -1,39 +1,39 @@ -/* - - Window positioning demo. -*/ - +/* + + Window positioning demo. +*/ + import plplot; -import std.string; - -/*--------------------------------------------------------------------------*\ - * main - * - * Demonstrates absolute positioning of graphs on a page. -\*--------------------------------------------------------------------------*/ -int main( char[][] args ) -{ - /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; +import std.string; + +/*--------------------------------------------------------------------------*\ + * main + * + * Demonstrates absolute positioning of graphs on a page. +\*--------------------------------------------------------------------------*/ +int main( char[][] args ) +{ + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; plparseopts( &argc, cast(char**)c_args, 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(); - return 0; -} + + /* 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(); + return 0; +} Property changes on: trunk/examples/d/x10d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x12d.d =================================================================== --- trunk/examples/d/x12d.d 2009-03-09 22:19:06 UTC (rev 9694) +++ trunk/examples/d/x12d.d 2009-03-09 22:23:53 UTC (rev 9695) @@ -1,65 +1,65 @@ -/* - - Bar chart demo. -*/ - -import plplot; -import std.string; - -/*--------------------------------------------------------------------------*\ - * main - * - * Does a simple bar chart, using color fill. If color fill is - * unavailable, pattern fill is used instead (automatic). -\*--------------------------------------------------------------------------*/ -int main( char[][] args ) -{ - char[] string; - PLFLT[10] y0; - - /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, 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[] = [5.0, 15.0, 12.0, 24.0, 28.0, 30.0, 20.0, 8.0, 12.0, 3.0]; - - for( size_t i=0; i<10; i++ ) { - plcol0( i+1 ); - plpsty( 0 ); - plfbox( (1980.+i), y0[i] ); - string = format( "%.0f", y0[i] ); - plptex( (1980.+i+.5), (y0[i]+1.), 1.0, 0.0, .5, toStringz(string) ); - string = format( "%d", 1980+i ); - plmtex( "b", 1.0, ((i+1)*.1-.05), 0.5, toStringz(string) ); - } - - /* Don't forget to call plend() to finish off! */ - plend(); - return 0; -} - - -void plfbox( PLFLT x0, PLFLT y0 ) -{ - PLFLT[4] x = [x0, x0, x0+1.0, x0+1.0];; - PLFLT[4] y = [0.0, y0, y0, 0.0]; - - plfill( 4, cast(PLFLT*)x, cast(PLFLT*)y ); - plcol0( 1 ); - pllsty( 1 ); - plline( 4, cast(PLFLT*)x, cast(PLFLT*)y ); -} +/* + + Bar chart demo. +*/ + +import plplot; +import std.string; + +/*--------------------------------------------------------------------------*\ + * main + * + * Does a simple bar chart, using color fill. If color fill is + * unavailable, pattern fill is used instead (automatic). +\*--------------------------------------------------------------------------*/ +int main( char[][] args ) +{ + char[] string; + PLFLT[10] y0; + + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, 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[] = [5.0, 15.0, 12.0, 24.0, 28.0, 30.0, 20.0, 8.0, 12.0, 3.0]; + + for( size_t i=0; i<10; i++ ) { + plcol0( i+1 ); + plpsty( 0 ); + plfbox( (1980.+i), y0[i] ); + string = format( "%.0f", y0[i] ); + plptex( (1980.+i+.5), (y0[i]+1.), 1.0, 0.0, .5, toStringz(string) ); + string = format( "%d", 1980+i ); + plmtex( "b", 1.0, ((i+1)*.1-.05), 0.5, toStringz(string) ); + } + + /* Don't forget to call plend() to finish off! */ + plend(); + return 0; +} + + +void plfbox( PLFLT x0, PLFLT y0 ) +{ + PLFLT[4] x = [x0, x0, x0+1.0, x0+1.0];; + PLFLT[4] y = [0.0, y0, y0, 0.0]; + + plfill( 4, cast(PLFLT*)x, cast(PLFLT*)y ); + plcol0( 1 ); + pllsty( 1 ); + plline( 4, cast(PLFLT*)x, cast(PLFLT*)y ); +} Property changes on: trunk/examples/d/x12d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x13d.d =================================================================== --- trunk/examples/d/x13d.d 2009-03-09 22:19:06 UTC (rev 9694) +++ trunk/examples/d/x13d.d 2009-03-09 22:23:53 UTC (rev 9695) @@ -1,81 +1,81 @@ -/* - - Pie chart demo. -*/ - -import plplot; -import std.string; -import std.math; - -char[] text[] = [ "Maurice", - "Geoffrey", - "Alan", - "Rafael", - "Vince" ]; - -/*--------------------------------------------------------------------------*\ - * main - * - * Does a simple pie chart. -\*--------------------------------------------------------------------------*/ -int main( char[][] args ) -{ - int dthet, theta0, theta1, theta; - PLFLT just, dx, dy; - PLFLT[500] x, y; - PLFLT[5] per = [ 10.0, 32.0, 12.0, 30.0, 16.0 ]; - - /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); - - /* Initialize plplot */ - plinit(); - - plenv( 0., 10., 0., 10., 1, -2 ); - plcol0( 2 ); - /* n.b. all theta quantities scaled by 2*M_PI/500 to be integers to avoid - * floating point logic problems. */ - theta0 = 0; - dthet = 1; - for( size_t i=0; i<=4; i++ ) { - size_t j = 0; - x[j] = 5.; - y[j++] = 5.; - /* n.b. the theta quantities multiplied by 2*M_PI/500 afterward so - * in fact per is interpreted as a percentage. */ - theta1 = cast(int)(theta0+5.0*per[i]); - if( i==4 ) - theta1 = 500; - for( theta=theta0; theta<=theta1; theta+=dthet ) { - x[j] = 5+3*cos((2.*PI/500.)*theta); - y[j++] = 5+3*sin((2.*PI/500.)*theta); - } - plcol0( i+1 ); - plpsty( (i+3)%8+1 ); - plfill( j, cast(PLFLT*)x, cast(PLFLT*)y ); - plcol0( 1 ); - plline( j, cast(PLFLT*)x, cast(PLFLT*)y ); - just = (2.*PI/500.)*(theta0 + theta1)/2.; - dx = .25*cos(just); - dy = .25*sin(just); - if( (theta0+theta1)<250 || (theta0+theta1)>750 ) - just = 0.; - else - just = 1.; - - plptex( (x[j/2]+dx), (y[j/2]+dy), 1.0, 0.0, just, toStringz(text[i]) ); - theta0 = theta-dthet; - } - plfont( 2 ); - plschr( 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(); - return 0; -} +/* + + Pie chart demo. +*/ + +import plplot; +import std.string; +import std.math; + +char[] text[] = [ "Maurice", + "Geoffrey", + "Alan", + "Rafael", + "Vince" ]; + +/*--------------------------------------------------------------------------*\ + * main + * + * Does a simple pie chart. +\*--------------------------------------------------------------------------*/ +int main( char[][] args ) +{ + int dthet, theta0, theta1, theta; + PLFLT just, dx, dy; + PLFLT[500] x, y; + PLFLT[5] per = [ 10.0, 32.0, 12.0, 30.0, 16.0 ]; + + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + /* Initialize plplot */ + plinit(); + + plenv( 0., 10., 0., 10., 1, -2 ); + plcol0( 2 ); + /* n.b. all theta quantities scaled by 2*M_PI/500 to be integers to avoid + * floating point logic problems. */ + theta0 = 0; + dthet = 1; + for( size_t i=0; i<=4; i++ ) { + size_t j = 0; + x[j] = 5.; + y[j++] = 5.; + /* n.b. the theta quantities multiplied by 2*M_PI/500 afterward so + * in fact per is interpreted as a percentage. */ + theta1 = cast(int)(theta0+5.0*per[i]); + if( i==4 ) + theta1 = 500; + for( theta=theta0; theta<=theta1; theta+=dthet ) { + x[j] = 5+3*cos((2.*PI/500.)*theta); + y[j++] = 5+3*sin((2.*PI/500.)*theta); + } + plcol0( i+1 ); + plpsty( (i+3)%8+1 ); + plfill( j, cast(PLFLT*)x, cast(PLFLT*)y ); + plcol0( 1 ); + plline( j, cast(PLFLT*)x, cast(PLFLT*)y ); + just = (2.*PI/500.)*(theta0 + theta1)/2.; + dx = .25*cos(just); + dy = .25*sin(just); + if( (theta0+theta1)<250 || (theta0+theta1)>750 ) + just = 0.; + else + just = 1.; + + plptex( (x[j/2]+dx), (y[j/2]+dy), 1.0, 0.0, just, toStringz(text[i]) ); + theta0 = theta-dthet; + } + plfont( 2 ); + plschr( 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(); + return 0; +} Property changes on: trunk/examples/d/x13d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-05-04 19:41:03
|
Revision: 9897 http://plplot.svn.sourceforge.net/plplot/?rev=9897&view=rev Author: smekal Date: 2009-05-04 19:40:47 +0000 (Mon, 04 May 2009) Log Message: ----------- Added examples x17d (crashes still), x24d, x25d and x30d (all compile and run, but were not compared to C examples yet with ctest). Made corresponding changes to CMakeLists.txt. Modified Paths: -------------- trunk/examples/d/CMakeLists.txt trunk/examples/d/x03d.d Added Paths: ----------- trunk/examples/d/x17d.d trunk/examples/d/x24d.d trunk/examples/d/x25d.d trunk/examples/d/x30d.d Modified: trunk/examples/d/CMakeLists.txt =================================================================== --- trunk/examples/d/CMakeLists.txt 2009-05-03 22:32:11 UTC (rev 9896) +++ trunk/examples/d/CMakeLists.txt 2009-05-04 19:40:47 UTC (rev 9897) @@ -30,6 +30,10 @@ "11" "12" "13" +"17" +"24" +"25" +"30" ) if(BUILD_TEST) Modified: trunk/examples/d/x03d.d =================================================================== --- trunk/examples/d/x03d.d 2009-05-03 22:32:11 UTC (rev 9896) +++ trunk/examples/d/x03d.d 2009-05-04 19:40:47 UTC (rev 9897) @@ -1,4 +1,4 @@ -/* +/* $Id$ Polar plot demo. */ Added: trunk/examples/d/x17d.d =================================================================== --- trunk/examples/d/x17d.d (rev 0) +++ trunk/examples/d/x17d.d 2009-05-04 19:40:47 UTC (rev 9897) @@ -0,0 +1,132 @@ +/* $Id$ + + Plots a simple stripchart with four pens. + */ + +import plplot; +import std.string; +import std.math; +import std.stdio; +import std.c.stdlib; + + +/*--------------------------------------------------------------------------*\ + * main program +\*--------------------------------------------------------------------------*/ +int main( char[][] args ) +{ + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + /* If db is used the plot is much more smooth. However, because of the + async X behaviour, one does not have a real-time scripcharter. */ + plsetopt( "db", "" ); + plsetopt( "np", "" ); + + /* User sets up plot completely except for window and data + * Eventually settings in place when strip chart is created will be + * remembered so that multiple strip charts can be used simultaneously. + */ + + /* Specify some reasonable defaults for ymin and ymax */ + /* The plot will grow automatically if needed (but not shrink) */ + PLFLT ymin = -0.1; + PLFLT ymax = 0.1; + + /* Specify initial tmin and tmax -- this determines length of window. */ + /* Also specify maximum jump in t */ + /* This can accomodate adaptive timesteps */ + PLFLT tmin = 0.; + PLFLT tmax = 10.; + PLFLT tjump = 0.3; /* percentage of plot to jump */ + + /* Axes options same as plbox. */ + /* Only automatic tick generation and label placement allowed */ + /* Eventually I'll make this fancier */ + PLINT colbox = 1; + PLINT collab = 3; + PLINT[4] styline = [ 2, 3, 4, 5 ]; /* pens color and line style */ + PLINT[4] colline = [ 2, 3, 4, 5 ]; + + /* pens legend */ + char[][4] legline = [ "sum", "sin", "sin*noi", "sin+noi" ]; + + PLFLT xlab = 0.; /* legend position */ + PLFLT ylab = 0.25; + + PLINT autoy = 1; /* autoscale y */ + PLINT acc = 1; /* don't scrip, accumulate */ + + /* Initialize plplot */ + plinit(); + + pladv( 0 ); + plvsta(); + + /* Register our error variables with PLplot */ + /* From here on, we're handling all errors here */ + PLINT pl_errcode; + char[160] errmsg; + plsError( &pl_errcode, cast(char*)errmsg ); + + PLINT id1; + plstripc( &id1, "bcnst", "bcnstv", + tmin, tmax, tjump, ymin, ymax, + xlab, ylab, + autoy, acc, + colbox, collab, + cast(PLINT*)colline, cast(PLINT*)styline, cast(char**)legline, + "t", "", "Strip chart demo" ); + + if( pl_errcode ) { + writefln( "%s\n", errmsg ); // TODO: to stderr + return 1; + } + + /* Let plplot handle errors from here on */ + plsError( null, null ); + + autoy = 0; /* autoscale y */ + acc = 1; /* accumulate */ + + /* This is to represent a loop over time */ + /* Let's try a random walk process */ + + PLFLT y1=0.0, y2=0.0, y3=0.0, y4=0.0; + PLFLT dt=0.1; + + const nsteps=1000; + PLFLT t, noise; + for( size_t n=0; n<nsteps; n++ ) { + // todo: usleep? + // todo: poll? + t = cast(PLFLT)n*dt; + noise = (cast(PLFLT)std.c.stdlib.rand()/(std.c.stdlib.RAND_MAX+1.0))-0.5; + y1 += noise; + y2 = sin(t*PI/18.); + y3 = y2*noise; + y4 = y2+noise/3.; + + /* There is no need for all pens to have the same number of + points or beeing equally time spaced. */ + if( n%2 ) + plstripa( id1, 0, t, y1 ); + if( n%3 ) + plstripa( id1, 1, t, y2 ); + if( n%4 ) + plstripa( id1, 2, t, y3 ); + if( n%5 ) + plstripa( id1, 3, t, y4 ); + pleop(); /* use double buffer (-db on command line) */ + } + + /* Destroy strip chart and it's memory */ + plstripd( id1 ); + plend(); + return 0; +} Property changes on: trunk/examples/d/x17d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/examples/d/x24d.d =================================================================== --- trunk/examples/d/x24d.d (rev 0) +++ trunk/examples/d/x24d.d 2009-05-04 19:40:47 UTC (rev 9897) @@ -0,0 +1,158 @@ +/* $Id$ + + Unicode Pace Flag + + Copyright (C) 2009 Werner Smekal + + + 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 + + + In Debian, run like this: + + ( TTFDIR=/usr/share/fonts/truetype ; \ + PLPLOT_FREETYPE_SANS_FONT=$TTFDIR/arphic/bkai00mp.ttf \ + PLPLOT_FREETYPE_SERIF_FONT=$TTFDIR/freefont/FreeSerif.ttf \ + PLPLOT_FREETYPE_MONO_FONT=$TTFDIR/ttf-devanagari-fonts/lohit_hi.ttf \ + PLPLOT_FREETYPE_SCRIPT_FONT=$TTFDIR/unfonts/UnBatang.ttf \ + PLPLOT_FREETYPE_SYMBOL_FONT=$TTFDIR/ttf-bengali-fonts/JamrulNormal.ttf \ + ./x24c -dev png -o x24c.png ) + + Packages needed: + + ttf-arphic-bkai00mp + ttf-freefont + ttf-devanagari-fonts + ttf-unfonts + ttf-bengali-fonts + + For the latest Ubuntu systems lohit_hi.ttf has been moved to the + ttf-indic-fonts-core package instead of ttf-devanagari-fonts so you + will have to use this package instead and update the font path. + */ + + +import plplot; +import std.string; + +static PLINT[] red = [ 240, 204, 204, 204, 0, 39, 125 ]; +static PLINT[] green = [ 240, 0, 125, 204, 204, 80, 0 ]; +static PLINT[] blue = [ 240, 0, 0, 0, 0, 204, 125 ]; + +static PLFLT[] px = [ 0.0, 0.0, 1.0, 1.0 ]; +static PLFLT[] py = [ 0.0, 0.25, 0.25, 0.0 ]; + +static PLFLT[] sx = [ + 0.16374, + 0.15844, + 0.15255, + 0.17332, + 0.50436, + 0.51721, + 0.49520, + 0.48713, + 0.83976, + 0.81688, + 0.82231, + 0.82647 +]; + +static PLFLT[] sy = [ + 0.125, + 0.375, + 0.625, + 0.875, + 0.125, + 0.375, + 0.625, + 0.875, + 0.125, + 0.375, + 0.625, + 0.875 +]; + + +/* Taken from http://www.columbia.edu/~fdc/pace/ */ + +static char[][] peace = [ + /* Mandarin */ + "#<0x00>和平", + /* Hindi */ + "#<0x20>शांति", + /* English */ + "#<0x10>Peace", + /* Hebrew */ + "#<0x10>שלום", + /* Russian */ + "#<0x10>Мир", + /* German */ + "#<0x10>Friede", + /* Korean */ + "#<0x30>평화", + /* French */ + "#<0x10>Paix", + /* Spanish */ + "#<0x10>Paz", + /* Arabic */ + "#<0x10>ﺳﻼم", + /* Turkish*/ + "#<0x10>Barış", + /* Kurdish */ + "#<0x10>Hasîtî", +]; + + +int main( char[][] args ) +{ + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + plinit(); + + pladv(0); + plvpor(0.0, 1.0, 0.0, 1.0); + plwind(0.0, 1.0, 0.0, 1.0); + plcol0(0); + plbox("", 1.0, 0, "", 1.0, 0); + + plscmap0n(7); + plscmap0(cast(PLINT*)red, cast(PLINT*)green, cast(PLINT*)blue, 7); + + plschr(0, 4.0); + plfont(1); + + for(int i = 0; i < 4; i++ ) { + plcol0(i + 1); + plfill(4, cast(PLFLT*)px, cast(PLFLT*)py); + + for(int j = 0; j < py.length; j++) + py[j] += 1.0/4.0; + } + + plcol0(0); + for(int i = 0; i < 12; i++) + plptex(sx[i], sy[i], 1.0, 0.0, 0.5, toStringz(peace[i])); + + plend(); + return 0; +} Property changes on: trunk/examples/d/x24d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/examples/d/x25d.d =================================================================== --- trunk/examples/d/x25d.d (rev 0) +++ trunk/examples/d/x25d.d 2009-05-04 19:40:47 UTC (rev 9897) @@ -0,0 +1,98 @@ +/* $Id$ + + Filling and clipping polygons. +*/ + +import plplot; +import std.string; + + +/*--------------------------------------------------------------------------*\ + * main + * + * Test program for filling polygons and proper clipping +\*--------------------------------------------------------------------------*/ + +int main( char[][] args ) +{ + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + /* Initialize plplot */ + plssub(3, 3); + plinit(); + + static PLFLT[2][9] xextreme = [ [-120.0, 120.0], + [-120.0, 120.0], + [-120.0, 120.0], + [ -80.0, 80.0], + [-220.0,-120.0], + [ -20.0, 20.0], + [ -20.0, 20.0], + [ -80.0, 80.0], + [ 20.0, 120.0] ]; + + static PLFLT[2][9] yextreme = [ [-120.0, 120.0], + [ 20.0, 120.0], + [ -20.0, 120.0], + [ -20.0, 120.0], + [-120.0, 120.0], + [-120.0, 120.0], + [ -20.0, 20.0], + [ -80.0, 80.0], + [-120.0, 120.0] ]; + + PLFLT[] x0, y0; + x0.length = 4; + y0.length = 4; + for(int j=0; j<4; j++) { + switch(j) { + case 0: + /* Polygon 1: a diamond */ + x0[] = [ 0.0, -100.0, 0.0, 100.0 ]; + y0[] = [-100.0, 0.0, 100.0, 0.0 ]; + break; + case 1: + /* Polygon 1: a diamond - reverse direction */ + x0[] = [ 100.0, 0.0, -100.0, 0.0 ]; + y0[] = [ 0.0, 100.0, 0.0, -100.0 ]; + break; + case 2: + /* Polygon 2: a square with punctures */ + x0.length = 10; + y0.length = 10; + x0[] = [ -100.0, -100.0, 80.0, -100.0, -100.0, -80.0, 0.0, 80.0, 100.0, 100.0 ]; + y0[] = [ -100.0, -80.0, 0.0, 80.0, 100.0, 100.0, 80.0, 100.0, 100.0, -100.0 ]; + break; + case 3: + /* Polygon 2: a square with punctures - reversed direction */ + x0[] = [ 100.0, 100.0, 80.0, 0.0, -80.0, -100.0, -100.0, 80.0, -100.0, -100.0 ]; + y0[] = [ -100.0, 100.0, 100.0, 80.0, 100.0, 100.0, 80.0, 0.0, -80.0, -100.0 ]; + break; + } + + for(int i=0; i<9 ; i++) { + pladv(0); + plvsta(); + plwind(xextreme[i][0], xextreme[i][1], yextreme[i][0], yextreme[i][1]); + + plcol0(2); + plbox("bc", 1.0, 0, "bcnv", 10.0, 0); + plcol0(1); + plpsty(0); + plfill(x0.length, cast(PLFLT*)x0, cast(PLFLT*)y0); + plcol0(2); + pllsty(1); + plline(y0.length, cast(PLFLT*)x0, cast(PLFLT*)y0); + } + } + + /* Don't forget to call plend() to finish off! */ + plend(); + return 0; +} Property changes on: trunk/examples/d/x25d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/examples/d/x30d.d =================================================================== --- trunk/examples/d/x30d.d (rev 0) +++ trunk/examples/d/x30d.d 2009-05-04 19:40:47 UTC (rev 9897) @@ -0,0 +1,169 @@ +/* $Id$ + + Alpha color values demonstration. + + Copyright (C) 2009 Werner Smekal + + + 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 + + This example will only really be interesting when used with devices that + support or alpha (or transparency) values, such as the cairo device family. + */ + + +import plplot; +import std.string; + +static PLINT[] red = [ 0, 255, 0, 0 ]; +static PLINT[] green = [ 0, 0, 255, 0 ]; +static PLINT[] blue = [ 0, 0, 0, 255 ]; +static PLFLT[] alpha = [ 1.0, 1.0, 1.0, 1.0 ]; + +static PLFLT[] px = [ 0.1, 0.5, 0.5, 0.1 ]; +static PLFLT[] py = [ 0.1, 0.1, 0.5, 0.5 ]; + +static PLFLT[] pos = [ 0.0, 1.0 ]; +static PLFLT[] rcoord = [ 1.0, 1.0 ]; +static PLFLT[] gcoord = [ 0.0, 0.0 ]; +static PLFLT[] bcoord = [ 0.0, 0.0 ]; +static PLFLT[] acoord = [ 0.0, 1.0 ]; +static PLBOOL[] rev = [ 0, 0 ]; + + +int main( char[][] args ) +{ + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + plinit(); + plscmap0n(4); + plscmap0a(cast(PLINT*)red, cast(PLINT*)green, cast(PLINT*)blue, cast(PLFLT*)alpha, 4); + + /* + Page 1: + + This is a series of red, green and blue rectangles overlaid + on each other with gradually increasing transparency. + */ + + /* Set up the window */ + pladv(0); + plvpor(0.0, 1.0, 0.0, 1.0); + plwind(0.0, 1.0, 0.0, 1.0); + plcol0(0); + plbox("", 1.0, 0, "", 1.0, 0); + + /* Draw the boxes */ + PLINT icol, r, g, b; + PLFLT a; + for(int i=0; i<9; i++) { + icol = i%3 + 1; + + /* Get a color, change its transparency and */ + /* set it as the current color. */ + plgcol0a(icol, &r, &g, &b, &a); + plscol0a(icol, r, g, b, 1.0-i/9.0); + plcol0(icol); + + /* Draw the rectangle */ + plfill(4, cast(PLFLT*)px, cast(PLFLT*)py); + + /* Shift the rectangles coordinates */ + for(int j=0; j<4; j++) { + px[j] += 0.5/9.0; + py[j] += 0.5/9.0; + } + } + + /* + Page 2: + + This is a bunch of boxes colored red, green or blue with a single + large (red) box of linearly varying transparency overlaid. The + overlaid box is completely transparent at the bottom and completely + opaque at the top. + */ + + /* Set up the window */ + pladv(0); + plvpor(0.1, 0.9, 0.1, 0.9); + plwind(0.0, 1.0, 0.0, 1.0); + + /* Draw the boxes. There are 25 of them drawn on a 5 x 5 grid. */ + for(int i=0; i<5; i++) { + /* Set box X position */ + px[0] = 0.05 + 0.2*i; + px[1] = px[0] + 0.1; + px[2] = px[1]; + px[3] = px[0]; + + /* We don't want the boxes to be transparent, so since we changed */ + /* the colors transparencies in the first example we have to change */ + /* the transparencies back to completely opaque. */ + icol = i%3 + 1; + plgcol0a(icol, &r, &g, &b, &a); + plscol0a(icol, r, g, b, 1.0); + plcol0(icol); + for(int j=0; j<5; j++) { + /* Set box y position and draw the box. */ + py[0] = 0.05 + 0.2*j; + py[1] = py[0]; + py[2] = py[0] + 0.1; + py[3] = py[2]; + plfill(4, cast(PLFLT*)px, cast(PLFLT*)py); + } + } + + /* The overlaid box is drawn using plshades with a color map that is */ + /* the same color but has a linearly varying transparency. */ + + /* Create the color map with 128 colors and use plscmap1la to initialize */ + /* the color values with a linear varying transparency (or alpha) */ + plscmap1n(128); + plscmap1la(1, 2, cast(PLFLT*)pos, cast(PLFLT*)rcoord, cast(PLFLT*)gcoord, + cast(PLFLT*)bcoord, cast(PLFLT*)acoord, cast(PLBOOL*)rev); + + /* Create a 2 x 2 array that contains the z values (0.0 to 1.0) that will */ + /* used for the shade plot. plshades will use linear interpolation to */ + /* calculate the z values of all the intermediate points in this array. */ + PLFLT[2][2] z; + + z[0][0] = 0.0; + z[1][0] = 0.0; + z[0][1] = 1.0; + z[1][1] = 1.0; + + /* Set the color levels array. These levels are also between 0.0 and 1.0 */ + PLFLT[101] clevel; + for(int i=0; i<clevel.length; i++) + clevel[i] = 0.01*i; + + /* Draw the shade plot with zmin = 0.0, zmax = 1.0 and x and y coordinate ranges */ + /* such that it fills the entire plotting area. */ + //plshades(cast(PLFLT**)z, 2, 2, null, 0.0, 1.0, 0.0, 1.0, cast(PLFLT*)clevel, + // 101, 0, -1, 2, plfill, 1, null, null); + + plend(); + return 0; +} + Property changes on: trunk/examples/d/x30d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-05-05 05:53:05
|
Revision: 9910 http://plplot.svn.sourceforge.net/plplot/?rev=9910&view=rev Author: smekal Date: 2009-05-05 05:52:55 +0000 (Tue, 05 May 2009) Log Message: ----------- Added examples x27d and x29d (all compile and run, but were not compared to C examples yet with ctest). Made corresponding changes to CMakeLists.txt. Modified Paths: -------------- trunk/examples/d/CMakeLists.txt Added Paths: ----------- trunk/examples/d/x27d.d trunk/examples/d/x29d.d Modified: trunk/examples/d/CMakeLists.txt =================================================================== --- trunk/examples/d/CMakeLists.txt 2009-05-05 02:10:57 UTC (rev 9909) +++ trunk/examples/d/CMakeLists.txt 2009-05-05 05:52:55 UTC (rev 9910) @@ -33,6 +33,8 @@ "17" "24" "25" +"27" +"29" "30" ) Added: trunk/examples/d/x27d.d =================================================================== --- trunk/examples/d/x27d.d (rev 0) +++ trunk/examples/d/x27d.d 2009-05-05 05:52:55 UTC (rev 9910) @@ -0,0 +1,146 @@ +/* $Id$ + + Drawing "spirograph" curves - epitrochoids, cycolids, roulettes + + Copyright (C) 2009 Werner Smekal + + 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 + +*/ + +import std.string; +import std.math; + +import plplot; + +/*--------------------------------------------------------------------------*\ + * main + * + * Generates two kinds of plots: + * - construction of a cycloid (animated) + * - series of epitrochoids and hypotrochoids +\*--------------------------------------------------------------------------*/ + +int main( char[][] args ) +{ + /* R, r, p, N */ + static PLFLT[4][9] params = [ + [ 21.0, 7.0, 7.0, 3.0 ], /* Deltoid */ + [ 21.0, 7.0, 10.0, 3.0 ], + [ 21.0, -7.0, 10.0, 3.0 ], + [ 20.0, 3.0, 7.0, 20.0 ], + [ 20.0, 3.0, 10.0, 20.0 ], + [ 20.0, -3.0, 10.0, 20.0 ], + [ 20.0, 13.0, 7.0, 20.0 ], + [ 20.0, 13.0, 20.0, 20.0 ], + [ 20.0,-13.0, 20.0, 20.0 ] ]; + + /* plplot initialization */ + + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + + /* Initialize plplot */ + plinit(); + + /* Illustrate the construction of a cycloid */ + cycloid(); + + /* Loop over the various curves + First an overview, then all curves one by one + */ + plssub(3, 3) ; /* Three by three window */ + + for(int i=0; i<9; i++) { + pladv(0) ; + plvpor(0.0, 1.0, 0.0, 1.0) ; + spiro(params[i]) ; + } + + pladv(0) ; + plssub(1, 1) ; /* One window per curve */ + + for(int i=0; i<9; i++ ) { + pladv(0) ; + plvpor(0.0, 1.0, 0.0, 1.0) ; + spiro(params[i]) ; + } + + /* Don't forget to call plend() to finish off! */ + plend(); + return 0; +} + +/* =============================================================== */ + +void cycloid() +{ + /* TODO */ +} + +/* =============================================================== */ +void spiro(PLFLT[] params) +{ + const int npnt=20000; + static PLFLT xcoord[npnt+1]; + static PLFLT ycoord[npnt+1]; + + /* Fill the coordinates */ + int windings = cast(int)(params[3]); + int steps = npnt/windings; + PLFLT dphi = 8.0*acos(-1.0)/steps; + + PLFLT xmin = 0.0 ; /* This initialisation is safe! */ + PLFLT xmax = 0.0 ; + PLFLT ymin = 0.0 ; + PLFLT ymax = 0.0 ; + + PLFLT phi; + PLFLT phiw; + for(int i=0; i<=windings*steps; i++ ) { + phi = i*dphi; + phiw = (params[0]-params[1])/params[1]*phi; + xcoord[i] = (params[0]-params[1])*cos(phi) + params[2]*cos(phiw); + ycoord[i] = (params[0]-params[1])*sin(phi) - params[2]*sin(phiw); + + if(xmin>xcoord[i]) xmin = xcoord[i]; + if(xmax<xcoord[i]) xmax = xcoord[i]; + if(ymin>ycoord[i]) ymin = ycoord[i]; + if(ymax<ycoord[i]) ymax = ycoord[i]; + } + + PLFLT scale; + if(xmax-xmin>ymax-ymin) + scale = xmax-xmin; + else + scale = ymax - ymin; + xmin = - 0.65*scale; + xmax = 0.65*scale; + ymin = - 0.65*scale; + ymax = 0.65*scale; + + plwind(xmin, xmax, ymin, ymax) ; + + plcol0(1); + plline(1+steps*windings, cast(PLFLT*)xcoord, cast(PLFLT*)ycoord ) ; +} Property changes on: trunk/examples/d/x27d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/examples/d/x29d.d =================================================================== --- trunk/examples/d/x29d.d (rev 0) +++ trunk/examples/d/x29d.d 2009-05-05 05:52:55 UTC (rev 9910) @@ -0,0 +1,234 @@ +/* $Id$ + + Sample plots using date / time formatting for axes + + Copyright (C) 2009 Werner Smekal + + 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 + +*/ + +import std.string; +import std.math; + +import plplot; + +/*--------------------------------------------------------------------------*\ + * main + * + * Draws several plots which demonstrate the use of date / time formats for + * the axis labels. + * Time formatting is done using the strfqsas routine from the qsastime + * library. This is similar to strftime, but works for a broad + * date range even on 32-bit systems. See the + * documentation of strfqsas for full details of the available formats. + * + * 1) Plotting temperature over a day (using hours / minutes) + * 2) Plotting + * + * Note: We currently use the default call for plconfigtime (done in + * plinit) which means continuous times are interpreted as seconds since + * 1970-01-01, but that may change in future, more extended versions of + * this example. + * +\*--------------------------------------------------------------------------*/ + +int main( char[][] args ) +{ + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + /* Initialize plplot */ + plinit(); + + /* Change the escape character to a '@' instead of the default '#' */ + plsesc('@'); + + plot myPlot = new plot; + + myPlot.page1(); + myPlot.page2(); + myPlot.page3(); + + /* Don't forget to call plend() to finish off! */ + plend(); + return 0; +} + + +class plot { + private PLFLT[] x, y; + private PLFLT[] xerr1, xerr2, yerr1, yerr2; + + private void resizeArrays(int size) + { + x.length = y.length = size; + xerr1.length = xerr2.length = size; + yerr1.length = yerr2.length = size; + } + + /* Plot a model diurnal cycle of temperature */ + void page1() + { + /* resize arrays */ + const int npts = 73; + resizeArrays(npts); + + /* Data points every 10 minutes for 1 day */ + PLFLT xmin = 0; + PLFLT xmax = 60.0*60.0*24.0; /* Number of seconds in a day */ + PLFLT ymin = 10.0; + PLFLT ymax = 20.0; + + for(int i=0; i<npts; i++) { + x[i] = xmax*(i/cast(PLFLT)npts); + y[i] = 15.0 - 5.0*cos(2*PI*(i/cast(PLFLT)npts)); + + /* Set x error bars to +/- 5 minute */ + xerr1[i] = x[i]-60*5; + xerr2[i] = x[i]+60*5; + + /* Set y error bars to +/- 0.1 deg C */ + yerr1[i] = y[i]-0.1; + yerr2[i] = y[i]+0.1; + } + + pladv(0); + + /* Rescale major ticks marks by 0.5 */ + plsmaj(0.0, 0.5); + + /* Rescale minor ticks and error bar marks by 0.5 */ + plsmin(0.0, 0.5); + + plvsta(); + plwind(xmin, xmax, ymin, ymax); + + /* Draw a box with ticks spaced every 3 hour in X and 1 degree C in Y. */ + plcol0(1); + + /* Set time format to be hours:minutes */ + pltimefmt("%H:%M"); + plbox("bcnstd", 3.0*60*60, 3, "bcnstv", 1, 5); + + plcol0(3); + pllab("Time (hours:mins)", "Temperature (degC)", "@frPLplot Example 29 - Daily temperature"); + + plcol0(4); + + plline(npts, cast(PLFLT*)x, cast(PLFLT*)y); + plcol0(2); + plerrx(npts, cast(PLFLT*)xerr1, cast(PLFLT*)xerr2, cast(PLFLT*)y); + plcol0(3); + plerry(npts, cast(PLFLT*)x, cast(PLFLT*)yerr1, cast(PLFLT*)yerr2); + + /* Rescale major / minor tick marks back to default */ + plsmin(0.0, 1.0); + plsmaj(0.0, 1.0); + } + + /* Plot the number of hours of daylight as a function of day for a year */ + void page2() + { + /* resize arrays */ + const int npts = 365; + resizeArrays(npts); + + /* Latitude for London */ + PLFLT lat = 51.5; + + PLFLT xmin = 0; + PLFLT xmax = npts*60.0*60.0*24.0; + PLFLT ymin = 0; + PLFLT ymax = 24; + + /* Formula for hours of daylight from + * "A Model Comparison for Daylength as a Function of Latitude and + * Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. */ + PLFLT p, d; + for (int j=0; j<npts; j++) { + x[j] = j*60.0*60.0*24.0; + p = asin(0.39795*cos(0.2163108 + 2*atan(0.9671396*tan(0.00860*(j-186))))); + d = 24.0 - (24.0/PI)* + acos( (sin(0.8333*PI/180.0) + sin(lat*PI/180.0)*sin(p)) / + (cos(lat*PI/180.0)*cos(p)) ); + y[j] = d; + } + + plcol0(1); + + /* Set time format to be abbreviated month name followed by day of month */ + pltimefmt("%b %d"); + plprec(1,1); + plenv(xmin, xmax, ymin, ymax, 0, 40); + + plcol0(3); + pllab("Date", "Hours of daylight", "@frPLplot Example 29 - Hours of daylight at 51.5N"); + + plcol0(4); + + plline(npts, cast(PLFLT*)x, cast(PLFLT*)y); + + plprec(0,0); + } + + void page3() + { + /* resize arrays */ + const int npts = 62; + resizeArrays(npts); + + /* Calculate continuous time corresponding to 2005-12-01 UTC. */ + PLFLT tstart; + plctime(2005, 11, 01, 0, 0, 0., &tstart); + + PLFLT xmin = tstart; + PLFLT xmax = xmin + npts*60.0*60.0*24.0; + PLFLT ymin = 0.0; + PLFLT ymax = 5.0; + + for(int i=0; i<npts; i++) { + x[i] = xmin + i*60.0*60.0*24.0; + y[i] = 1.0 + sin(2*PI*i/7.0) + exp(fmin(i,npts-i)/31.0); + } + pladv(0); + + plvsta(); + plwind(xmin, xmax, ymin, ymax); + + plcol0(1); + /* Set time format to be ISO 8601 standard YYYY-MM-DD. */ + pltimefmt("%F"); + /* Draw a box with ticks spaced every 14 days in X and 1 hour in Y. */ + plbox("bcnstd", 14*24.0*60.0*60.0,14, "bcnstv", 1, 4); + + plcol0(3); + pllab("Date", "Hours of television watched", "@frPLplot Example 29 - Hours of television watched in Dec 2005 / Jan 2006"); + + plcol0(4); + + /* Rescale symbol size (used by plpoin) by 0.5 */ + plssym(0.0,0.5); + plpoin(npts, cast(PLFLT*)x, cast(PLFLT*)y, 2); + plline(npts, cast(PLFLT*)x, cast(PLFLT*)y); + } +} Property changes on: trunk/examples/d/x29d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-08-14 05:59:20
|
Revision: 10249 http://plplot.svn.sourceforge.net/plplot/?rev=10249&view=rev Author: smekal Date: 2009-08-14 05:59:13 +0000 (Fri, 14 Aug 2009) Log Message: ----------- Fix D examples 16 and 19. Modified Paths: -------------- trunk/examples/d/x16d.d trunk/examples/d/x19d.d Modified: trunk/examples/d/x16d.d =================================================================== --- trunk/examples/d/x16d.d 2009-08-14 05:51:58 UTC (rev 10248) +++ trunk/examples/d/x16d.d 2009-08-14 05:59:13 UTC (rev 10249) @@ -22,10 +22,10 @@ * anyway, and cannot be reproduced by any * front end other than the C one. */ -/* Transformation function */ -PLFLT[] tr; +extern (C) { + /* Transformation function */ + PLFLT[] tr; -extern (C) { void mypltr(PLFLT x, PLFLT y, PLFLT *tx, PLFLT *ty, void* pltr_data) { *tx = tr[0] * x+tr[1] * y+tr[2]; @@ -109,6 +109,13 @@ /* Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display */ plscmap0n(3); + /* Load colour palettes*/ + plspal0("cmap0_black_on_white.pal"); + plspal1("cmap1_gray.pal"); + + /* Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display */ + plscmap0n(3); + /* Initialize plplot */ plinit(); @@ -195,6 +202,14 @@ pllab("distance", "altitude", "Bogon density"); /* Plot using 1d coordinate transform */ + + /* Load colour palettes*/ + plspal0("cmap0_black_on_white.pal"); + plspal1("cmap1_blue_yellow.pal"); + + /* Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display */ + plscmap0n(3); + pladv(0); plvpor(0.1, 0.9, 0.1, 0.9); plwind(-1.0, 1.0, -1.0, 1.0); @@ -210,6 +225,14 @@ pllab("distance", "altitude", "Bogon density"); /* Plot using 2d coordinate transform */ + + /* Load colour palettes*/ + plspal0("cmap0_black_on_white.pal"); + plspal1("cmap1_blue_red.pal"); + + /* Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display */ + plscmap0n(3); + pladv(0); plvpor(0.1, 0.9, 0.1, 0.9); plwind(-1.0, 1.0, -1.0, 1.0); @@ -227,6 +250,14 @@ pllab("distance", "altitude", "Bogon density, with streamlines"); /* Plot using 2d coordinate transform */ + + /* Load colour palettes*/ + plspal0(""); + plspal1(""); + + /* Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display */ + plscmap0n(3); + pladv(0); plvpor(0.1, 0.9, 0.1, 0.9); plwind(-1.0, 1.0, -1.0, 1.0); @@ -246,6 +277,13 @@ /* Plot using 2d coordinate transform and exclusion*/ if(exclude) { + /* Load colour palettes*/ + plspal0("cmap0_black_on_white.pal"); + plspal1("cmap1_gray.pal"); + + /* Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display */ + plscmap0n(3); + pladv(0); plvpor(0.1, 0.9, 0.1, 0.9); plwind(-1.0, 1.0, -1.0, 1.0); @@ -262,6 +300,14 @@ } /* Example with polar coordinates. */ + + /* Load colour palettes*/ + plspal0("cmap0_black_on_white.pal"); + plspal1("cmap1_gray.pal"); + + /* Reduce colors in cmap 0 so that cmap 1 is useful on a 16-color display */ + plscmap0n(3); + pladv(0); plvpor( .1, .9, .1, .9 ); plwind( -1., 1., -1., 1. ); Modified: trunk/examples/d/x19d.d =================================================================== --- trunk/examples/d/x19d.d 2009-08-14 05:51:58 UTC (rev 10248) +++ trunk/examples/d/x19d.d 2009-08-14 05:59:13 UTC (rev 10249) @@ -5,6 +5,8 @@ */ import std.math; +import std.string; +import std.c.string; import plplot; @@ -28,9 +30,57 @@ y[i] = yp; } } + + /* A custom axis labeling function for longitudes and latitudes. */ + void geolocation_labeler(PLINT axis, PLFLT value, char* label, PLINT length, PLPointer data) + { + string direction_label; + PLFLT label_val; + char* mlabel; + + if(axis==PL_Y_AXIS) { + label_val = value; + if(label_val>0.0) + direction_label = " N"; + else if(label_val<0.0) + direction_label = " S"; + else + direction_label = "Eq"; + } else if(axis==PL_X_AXIS) { + label_val = normalize_longitude(value); + if(label_val>0.0) + direction_label = " E"; + else if(label_val<0.0) + direction_label = " W"; + else + direction_label = ""; + } + + if(axis==PL_Y_AXIS && value==0.0) + /* A special case for the equator */ + strcpy(label, toStringz(direction_label)); + else + strcpy(label, toStringz(format("%.0f%s", fabs(label_val), direction_label))); + } } +/* "Normalize" longitude values so that they always fall between -180.0 and + 180.0 */ +PLFLT normalize_longitude(PLFLT lon) +{ + if(lon>=-180.0 && lon<=180.0) + return(lon); + else { + PLFLT times = floor((fabs(lon)+180.0)/360.0); + if(lon<0.0) + return(lon+360.0*times); + else + return(lon-360.0*times); + } +} + + /*--------------------------------------------------------------------------*\ * main * @@ -52,8 +102,11 @@ PLFLT minx = 190; PLFLT maxx = 190+360; + /* Setup a custom latitude and longitude-based scaling function. */ + plslabelfunc(&geolocation_labeler, null); + plcol0(1); - plenv(minx, maxx, miny, maxy, 1, -1); + plenv(minx, maxx, miny, maxy, 1, 70); plmap(null, "usaglobe", minx, maxx, miny, maxy); /* The Americas */ @@ -61,9 +114,12 @@ maxx = 340; plcol0(1); - plenv(minx, maxx, miny, maxy, 1, -1); + plenv(minx, maxx, miny, maxy, 1, 70); plmap(null, "usaglobe", minx, maxx, miny, maxy); + /* Clear the labeling function */ + plslabelfunc(null, null); + /* Polar, Northern hemisphere */ minx = 0; maxx = 360; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2011-01-11 00:28:09
|
Revision: 11469 http://plplot.svn.sourceforge.net/plplot/?rev=11469&view=rev Author: airwin Date: 2011-01-11 00:28:03 +0000 (Tue, 11 Jan 2011) Log Message: ----------- Add $Id$ lines like the other D examples. Modified Paths: -------------- trunk/examples/d/x06d.d trunk/examples/d/x07d.d trunk/examples/d/x08d.d trunk/examples/d/x10d.d trunk/examples/d/x11d.d Modified: trunk/examples/d/x06d.d =================================================================== --- trunk/examples/d/x06d.d 2011-01-11 00:26:38 UTC (rev 11468) +++ trunk/examples/d/x06d.d 2011-01-11 00:28:03 UTC (rev 11469) @@ -1,3 +1,4 @@ +/* $Id$ */ /* * * Font demo. Modified: trunk/examples/d/x07d.d =================================================================== --- trunk/examples/d/x07d.d 2011-01-11 00:26:38 UTC (rev 11468) +++ trunk/examples/d/x07d.d 2011-01-11 00:28:03 UTC (rev 11469) @@ -1,3 +1,4 @@ +/* $Id$ */ /* * * Font demo. Modified: trunk/examples/d/x08d.d =================================================================== --- trunk/examples/d/x08d.d 2011-01-11 00:26:38 UTC (rev 11468) +++ trunk/examples/d/x08d.d 2011-01-11 00:28:03 UTC (rev 11469) @@ -1,3 +1,4 @@ +/* $Id$ */ /* * * 3-d plot demo. Modified: trunk/examples/d/x10d.d =================================================================== --- trunk/examples/d/x10d.d 2011-01-11 00:26:38 UTC (rev 11468) +++ trunk/examples/d/x10d.d 2011-01-11 00:28:03 UTC (rev 11469) @@ -1,3 +1,4 @@ +/* $Id$ */ /* * * Window positioning demo. Modified: trunk/examples/d/x11d.d =================================================================== --- trunk/examples/d/x11d.d 2011-01-11 00:26:38 UTC (rev 11468) +++ trunk/examples/d/x11d.d 2011-01-11 00:28:03 UTC (rev 11469) @@ -1,3 +1,4 @@ +/* $Id$ */ /* * * Mesh plot demo. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2011-01-11 00:35:56
|
Revision: 11470 http://plplot.svn.sourceforge.net/plplot/?rev=11470&view=rev Author: airwin Date: 2011-01-11 00:35:49 +0000 (Tue, 11 Jan 2011) Log Message: ----------- Property tweaks Modified Paths: -------------- trunk/examples/d/x20d.d trunk/examples/d/x21d.d trunk/examples/d/x22d.d trunk/examples/d/x28d.d trunk/examples/d/x31d.d Property Changed: ---------------- trunk/examples/d/x20d.d trunk/examples/d/x21d.d trunk/examples/d/x22d.d trunk/examples/d/x28d.d trunk/examples/d/x31d.d Modified: trunk/examples/d/x20d.d =================================================================== --- trunk/examples/d/x20d.d 2011-01-11 00:28:03 UTC (rev 11469) +++ trunk/examples/d/x20d.d 2011-01-11 00:35:49 UTC (rev 11470) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ * * plimage demo * Property changes on: trunk/examples/d/x20d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x21d.d =================================================================== --- trunk/examples/d/x21d.d 2011-01-11 00:28:03 UTC (rev 11469) +++ trunk/examples/d/x21d.d 2011-01-11 00:35:49 UTC (rev 11470) @@ -1,4 +1,4 @@ -/* $Id:$ +/* $Id$ * Grid data demo * * Copyright (C) 2009 Werner Smekal Property changes on: trunk/examples/d/x21d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x22d.d =================================================================== --- trunk/examples/d/x22d.d 2011-01-11 00:28:03 UTC (rev 11469) +++ trunk/examples/d/x22d.d 2011-01-11 00:35:49 UTC (rev 11470) @@ -1,4 +1,4 @@ -/* $Id:$ +/* $Id$ * * Simple vector plot example * Copyright (C) 2009 Werner Smekal Property changes on: trunk/examples/d/x22d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x28d.d =================================================================== --- trunk/examples/d/x28d.d 2011-01-11 00:28:03 UTC (rev 11469) +++ trunk/examples/d/x28d.d 2011-01-11 00:35:49 UTC (rev 11470) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ * * plmtex3, plptex3 demo. * Property changes on: trunk/examples/d/x28d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x31d.d =================================================================== --- trunk/examples/d/x31d.d 2011-01-11 00:28:03 UTC (rev 11469) +++ trunk/examples/d/x31d.d 2011-01-11 00:35:49 UTC (rev 11470) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ * * Copyright (C) 2009 Werner Smekal * Property changes on: trunk/examples/d/x31d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-05-05 18:26:50
|
Revision: 9921 http://plplot.svn.sourceforge.net/plplot/?rev=9921&view=rev Author: smekal Date: 2009-05-05 18:26:28 +0000 (Tue, 05 May 2009) Log Message: ----------- Added examples x23d (compiles and runs, but was not compared to C examples yet with ctest). Made corresponding changes to CMakeLists.txt. Small change to x24d regarding order of imports. Modified Paths: -------------- trunk/examples/d/CMakeLists.txt trunk/examples/d/x24d.d Added Paths: ----------- trunk/examples/d/x23d.d Modified: trunk/examples/d/CMakeLists.txt =================================================================== --- trunk/examples/d/CMakeLists.txt 2009-05-05 17:52:13 UTC (rev 9920) +++ trunk/examples/d/CMakeLists.txt 2009-05-05 18:26:28 UTC (rev 9921) @@ -31,6 +31,7 @@ "12" "13" "17" +"23" "24" "25" "27" Added: trunk/examples/d/x23d.d =================================================================== --- trunk/examples/d/x23d.d (rev 0) +++ trunk/examples/d/x23d.d 2009-05-05 18:26:28 UTC (rev 9921) @@ -0,0 +1,354 @@ +/* $Id$ + + Displays Greek letters and mathematically interesting Unicode ranges + Copyright (C) 2005,2008 Alan Irwin + Copyright (C) 2005,2008 Andrew Ross + + + 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 + +*/ + +import std.string; +import std.stdio; + +import plplot; + + +/* + * main + * + * Displays Greek letters and mathematically interesting Unicode ranges +*/ + +static char[][] Greek = [ + "#gA","#gB","#gG","#gD","#gE","#gZ","#gY","#gH","#gI","#gK","#gL","#gM", + "#gN","#gC","#gO","#gP","#gR","#gS","#gT","#gU","#gF","#gX","#gQ","#gW", + "#ga","#gb","#gg","#gd","#ge","#gz","#gy","#gh","#gi","#gk","#gl","#gm", + "#gn","#gc","#go","#gp","#gr","#gs","#gt","#gu","#gf","#gx","#gq","#gw" +]; + +static int[] Type1 = [ + 0x0020,0x0021,0x0023,0x0025,0x0026, + 0x0028,0x0029,0x002b,0x002c,0x002e, + 0x002f,0x0030,0x0031,0x0032,0x0033, + 0x0034,0x0035,0x0036,0x0037,0x0038, + 0x0039,0x003a,0x003b,0x003c,0x003d, + 0x003e,0x003f,0x005b,0x005d,0x005f, + 0x007b,0x007c,0x007d,0x00a9,0x00ac, + 0x00ae,0x00b0,0x00b1,0x00d7,0x00f7, + 0x0192,0x0391,0x0392,0x0393,0x0394, + 0x0395,0x0396,0x0397,0x0398,0x0399, + 0x039a,0x039b,0x039c,0x039d,0x039e, + 0x039f,0x03a0,0x03a1,0x03a3,0x03a4, + 0x03a5,0x03a6,0x03a7,0x03a8,0x03a9, + 0x03b1,0x03b2,0x03b3,0x03b4,0x03b5, + 0x03b6,0x03b7,0x03b8,0x03b9,0x03ba, + 0x03bb,0x03bc,0x03bd,0x03be,0x03bf, + 0x03c0,0x03c1,0x03c2,0x03c3,0x03c4, + 0x03c5,0x03c6,0x03c7,0x03c8,0x03c9, + 0x03d1,0x03d2,0x03d5,0x03d6,0x2022, + 0x2026,0x2032,0x2033,0x203e,0x2044, + 0x2111,0x2118,0x211c,0x2122,0x2126, + 0x2135,0x2190,0x2191,0x2192,0x2193, + 0x2194,0x21b5,0x21d0,0x21d1,0x21d2, + 0x21d3,0x21d4,0x2200,0x2202,0x2203, + 0x2205,0x2206,0x2207,0x2208,0x2209, + 0x220b,0x220f,0x2211,0x2212,0x2215, + 0x2217,0x221a,0x221d,0x221e,0x2220, + 0x2227,0x2228,0x2229,0x222a,0x222b, + 0x2234,0x223c,0x2245,0x2248,0x2260, + 0x2261,0x2264,0x2265,0x2282,0x2283, + 0x2284,0x2286,0x2287,0x2295,0x2297, + 0x22a5,0x22c5,0x2320,0x2321,0x2329, + 0x232a,0x25ca,0x2660,0x2663,0x2665, + 0x2666 +]; + +static char[][] title = [ + "#<0x10>PLplot Example 23 - Greek Letters", + "#<0x10>PLplot Example 23 - Type 1 Symbol Font Glyphs by Unicode (a)", + "#<0x10>PLplot Example 23 - Type 1 Symbol Font Glyphs by Unicode (b)", + "#<0x10>PLplot Example 23 - Type 1 Symbol Font Glyphs by Unicode (c)", + "#<0x10>PLplot Example 23 - Number Forms Unicode Block", + "#<0x10>PLplot Example 23 - Arrows Unicode Block (a)", + "#<0x10>PLplot Example 23 - Arrows Unicode Block (b)", + "#<0x10>PLplot Example 23 - Mathematical Operators Unicode Block (a)", + "#<0x10>PLplot Example 23 - Mathematical Operators Unicode Block (b)", + "#<0x10>PLplot Example 23 - Mathematical Operators Unicode Block (c)", + "#<0x10>PLplot Example 23 - Mathematical Operators Unicode Block (d)" +]; + +static int[] lo = [ + 0x0, + 0x0, + 0x40, + 0x80, + 0x2153, + 0x2190, + 0x21d0, + 0x2200, + 0x2240, + 0x2280, + 0x22c0 +]; + +static int[] hi = [ + 0x30, + 0x40, + 0x80, + 0xA6, + 0x2184, + 0x21d0, + 0x2200, + 0x2240, + 0x2280, + 0x22c0, + 0x2300 +]; + +static int[] nxcells = [ + 12, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8 +]; + +static int[] nycells = [ + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 8 +]; + +/* non-zero values Must be consistent with nxcells and nycells. */ +static int[] offset = [ + 0, + 0, + 64, + 128, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +]; + +/* 30 possible FCI values. */ + +const int FCI_COMBINATIONS=30; +static PLUNICODE[] fci = [ + 0x80000000, + 0x80000001, + 0x80000002, + 0x80000003, + 0x80000004, + 0x80000010, + 0x80000011, + 0x80000012, + 0x80000013, + 0x80000014, + 0x80000020, + 0x80000021, + 0x80000022, + 0x80000023, + 0x80000024, + 0x80000100, + 0x80000101, + 0x80000102, + 0x80000103, + 0x80000104, + 0x80000110, + 0x80000111, + 0x80000112, + 0x80000113, + 0x80000114, + 0x80000120, + 0x80000121, + 0x80000122, + 0x80000123, + 0x80000124 +]; + +static const char[][] family = [ + "sans-serif", + "serif", + "monospace", + "script", + "symbol" +]; +static const char[][] style = [ + "upright", + "italic", + "oblique" +]; +static const char[][] weight = [ + "medium", + "bold" +]; + + + +int main( char[][] args ) +{ + string cmdString; + + /* Parse and process command line arguments */ + char*[] c_args = new char*[args.length]; + foreach( size_t i, char[] arg; args ) { + c_args[i] = toStringz(arg); + } + int argc = c_args.length; + plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + + plinit(); + + for(int page=0; page<11; page++ ) { + pladv(0); + + /* Set up viewport and window */ + plvpor(0.02, 0.98, 0.02, 0.90); + plwind(0.0, 1.0, 0.0, 1.0); + + PLFLT xmin, xmax, ymin, ymax; + plgspa(&xmin, &xmax, &ymin, &ymax); + plschr(0., 0.8); + PLFLT ycharacter_scale = (1.0 - 0.0)/(ymax-ymin); + + /* Factor should be 0.5, but heuristically it turns out to be larger. */ + PLFLT chardef, charht; + plgchr(&chardef, &charht); + PLFLT yoffset = 1.0*charht*ycharacter_scale; + + /* Draw the grid using plbox */ + plcol0(2); + PLFLT deltax = 1.0/nxcells[page]; + PLFLT deltay = 1.0/nycells[page]; + plbox("bcg", deltax, 0, "bcg", deltay, 0); + plcol0(15); + + int length=hi[page]-lo[page]; + int slice = 0; + PLFLT x, y; + for(int j=nycells[page]-1; j>=-1; j--) { + y = (0.5+j)*deltay; + for(int i=0; i<nxcells[page]; i++) { + x = (0.5+i)*deltax; + if(slice < length) { + if(page==0) + cmdString = format("#%s", Greek[slice]); + else if((page>=1) && (page<=3)) + cmdString = format("##[0x%.4x]", Type1[offset[page]+slice]); + else if(page>=4) + cmdString = format("##[0x%.4x]", lo[page]+slice); + plptex(x, y+yoffset, 1., 0., 0.5, &toStringz(cmdString)[1]); + plptex(x, y-yoffset, 1., 0., 0.5, toStringz(cmdString)); + } + slice++; + } + } + + /* Page title */ + plschr(0., 1.0); + plmtex("t", 1.5, 0.5, 0.5, toStringz(title[page])); + } + + /* Demonstrate methods of getting the current fonts */ + PLUNICODE fci_old; + plgfci(&fci_old); + + PLINT ifamily, istyle, iweight; + plgfont(&ifamily, &istyle, &iweight); + + writefln("For example 23 prior to page 12 the FCI is 0x%x", fci_old); + writefln("For example 23 prior to page 12 the font family, style and weight are %s %s %s", family[ifamily], style[istyle], weight[iweight]); + + for(int page=11; page<16; page++) { + PLFLT dy = 0.030; + string text; + + pladv(0); + plvpor(0.02, 0.98, 0.02, 0.90); + plwind(0.0, 1.0, 0.0, 1.0); + plsfci(0); + if(page==11) + plmtex("t", 1.5, 0.5, 0.5, "#<0x10>PLplot Example 23 - Set Font with plsfci"); + else if(page==12) + plmtex("t", 1.5, 0.5, 0.5, "#<0x10>PLplot Example 23 - Set Font with plsfont"); + else if(page==13) + plmtex("t", 1.5, 0.5, 0.5, "#<0x10>PLplot Example 23 - Set Font with ##<0x8nnnnnnn> construct"); + else if(page==14) + plmtex("t", 1.5, 0.5, 0.5, "#<0x10>PLplot Example 23 - Set Font with ##<0xmn> constructs"); + else if(page==15) + plmtex("t", 1.5, 0.5, 0.5, "#<0x10>PLplot Example 23 - Set Font with ##<FCI COMMAND STRING/> constructs"); + + plschr(0., 0.75); + for(int i=0; i<FCI_COMBINATIONS; i++) { + int family_index = i % 5; + int style_index = (i/5) % 3; + int weight_index = ((i/5)/3) % 2; + + if(page==11) { + plsfci(fci[i]); + text = format("Page 12, %s, %s, %s: The quick brown fox jumps over the lazy dog", + family[family_index], style[style_index], weight[weight_index]); + } else if(page==12) { + plsfont(family_index, style_index, weight_index); + text = format("Page 13, %s, %s, %s: The quick brown fox jumps over the lazy dog", + family[family_index], style[style_index], weight[weight_index]); + } else if(page==13) { + text = format("Page 14, %s, %s, %s: #<0x%x>The quick brown fox jumps over the lazy dog", + family[family_index], style[style_index], weight[weight_index], fci[i]); + } else if(page==14) { + text = format("Page 15, %s, %s, %s: #<0x%1x0>#<0x%1x1>#<0x%1x2>" + "The quick brown fox jumps over the lazy dog", + family[family_index], style[style_index], weight[weight_index], + family_index, style_index, weight_index); + } else if(page==15) { + text = format("Page 16, %s, %s, %s: #<%s/>#<%s/>#<%s/>" + "The quick brown fox jumps over the lazy dog", + family[family_index], style[style_index], weight[weight_index], + family[family_index], style[style_index], weight[weight_index]); + } + plptex(0., 1.-(i+0.5)*dy, 1., 0., 0., toStringz(text)); + } + + plschr(0., 1.0); + } + + /* Restore defaults */ + plcol0(1); + + plend(); + return 0; +} Property changes on: trunk/examples/d/x23d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x24d.d =================================================================== --- trunk/examples/d/x24d.d 2009-05-05 17:52:13 UTC (rev 9920) +++ trunk/examples/d/x24d.d 2009-05-05 18:26:28 UTC (rev 9921) @@ -46,9 +46,10 @@ */ -import plplot; import std.string; +import plplot; + static PLINT[] red = [ 240, 204, 204, 204, 0, 39, 125 ]; static PLINT[] green = [ 240, 0, 125, 204, 204, 80, 0 ]; static PLINT[] blue = [ 240, 0, 0, 0, 0, 204, 125 ]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-05-11 08:30:05
|
Revision: 9962 http://plplot.svn.sourceforge.net/plplot/?rev=9962&view=rev Author: smekal Date: 2009-05-11 08:29:49 +0000 (Mon, 11 May 2009) Log Message: ----------- Added new D example 2. D examples are now dependent on bindings/d/plplot.d and the D import library plplotdmd.lib is linked to the examples. Removed some unnecessary compiler options. Existing examples were modified to use the new D interface. Not all plplot functions in question were "ported" to D functions. Modified Paths: -------------- trunk/examples/d/CMakeLists.txt trunk/examples/d/x03d.d trunk/examples/d/x04d.d trunk/examples/d/x05d.d trunk/examples/d/x06d.d trunk/examples/d/x07d.d trunk/examples/d/x08d.d trunk/examples/d/x10d.d trunk/examples/d/x11d.d trunk/examples/d/x12d.d trunk/examples/d/x13d.d trunk/examples/d/x17d.d trunk/examples/d/x23d.d trunk/examples/d/x24d.d trunk/examples/d/x25d.d trunk/examples/d/x27d.d trunk/examples/d/x29d.d trunk/examples/d/x30d.d Added Paths: ----------- trunk/examples/d/x02d.d Modified: trunk/examples/d/CMakeLists.txt =================================================================== --- trunk/examples/d/CMakeLists.txt 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/CMakeLists.txt 2009-05-11 08:29:49 UTC (rev 9962) @@ -20,6 +20,7 @@ set(d_SRCS) set(d_STRING_INDICES +"02" "03" "04" "05" @@ -43,22 +44,19 @@ remove_definitions("-DHAVE_CONFIG_H") include_directories( ${CMAKE_SOURCE_DIR}/bindings/d - ${CMAKE_SOURCE_DIR}/include - ${CMAKE_BINARY_DIR}/include ) endif(BUILD_TEST) foreach(STRING_INDEX ${d_STRING_INDICES}) set(d_SRCS ${d_SRCS} x${STRING_INDEX}d.d) if(BUILD_TEST) add_executable(x${STRING_INDEX}d x${STRING_INDEX}d.d) - if(BUILD_SHARED_LIBS) - SET_SOURCE_FILES_PROPERTIES(x${STRING_INDEX}d.d - PROPERTIES COMPILE_FLAGS "-DUSINGDLL" ) - endif(BUILD_SHARED_LIBS) - target_link_libraries(x${STRING_INDEX}d plplot${LIB_TAG} ${MATH_LIB}) + target_link_libraries(x${STRING_INDEX}d plplotdmd${LIB_TAG} plplot${LIB_TAG} ${MATH_LIB}) endif(BUILD_TEST) endforeach(STRING_INDEX ${d_STRING_INDICES}) +set_source_files_properties(${d_SRCS} + PROPERTIES OBJECT_DEPENDS ${CMAKE_SOURCE_DIR}/bindings/d/plplot.d) + install(FILES ${d_SRCS} DESTINATION ${DATA_DIR}/examples/d ) Added: trunk/examples/d/x02d.d =================================================================== --- trunk/examples/d/x02d.d (rev 0) +++ trunk/examples/d/x02d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -0,0 +1,135 @@ +/* $Id$ + + Multiple window and color map 0 demo. +*/ + +import std.string; + +import plplot; + + +/*--------------------------------------------------------------------------*\ + * main + * + * Demonstrates multiple windows and color map 0 palette, both default and + * user-modified. +\*--------------------------------------------------------------------------*/ +int main(char[][] args) +{ + /* Parse and process command line arguments */ + plparseopts(args, PL_PARSE_FULL); + + /* Initialize plplot */ + plinit(); + + /* Run demos */ + plot myPlot = new plot; + + myPlot.demo1(); + myPlot.demo2(); + + plend(); + return 0; +} + +class plot { + /*--------------------------------------------------------------------------*\ + * demo1 + * Demonstrates multiple windows and default color map 0 palette. + \*--------------------------------------------------------------------------*/ + public void demo1() + { + plbop(); + + /* Divide screen into 16 regions */ + plssub(4, 4); + + draw_windows(16, 0); + + pleop(); + } + + /*--------------------------------------------------------------------------*\ + * demo2 + * Demonstrates multiple windows, user-modified color map 0 palette, and + * HLS -> RGB translation. + \*--------------------------------------------------------------------------*/ + public void demo2() + { + /* Set up cmap0 */ + /* Use 100 custom colors in addition to base 16 */ + PLINT[116] r, g, b; + + /* Min & max lightness values */ + PLFLT lmin = 0.15, lmax = 0.85; + + plbop(); + + /* Divide screen into 100 regions */ + plssub(10, 10); + + for(int i=0; i<100; i++) { + /* 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 */ + PLFLT h = (360./10.)*(i%10); + + /* Vary lightness uniformly from top to bottom, between min & max */ + PLFLT l = lmin + (lmax-lmin)*(i/10)/9.; + + /* Use max saturation */ + PLFLT s = 1.0; + + PLFLT r1, g1, b1; + plhlsrgb(h, l, s, &r1, &g1, &b1); + + r[i+16] = cast(PLINT)(r1*255); + g[i+16] = cast(PLINT)(g1*255); + b[i+16] = cast(PLINT)(b1*255); + } + + /* Load default cmap0 colors into our custom set */ + for(int i=0; i<16; i++) + plgcol0(i, &r[i], &g[i], &b[i]); + + /* Now set cmap0 all at once (faster, since fewer driver calls) */ + plscmap0(cast(int*)r, cast(int*)g, cast(int*)b, 116); + + draw_windows(100, 16); + + pleop(); + } + + /*--------------------------------------------------------------------------*\ + * draw_windows + * + * Draws a set of numbered boxes with colors according to cmap0 entry. + \*--------------------------------------------------------------------------*/ + private void draw_windows(int nw, int cmap0_offset) + { + plschr(0.0, 3.5); + plfont(4); + + for(int i=0; i<nw; i++) { + plcol0(i+cmap0_offset); + pladv(0); + + PLFLT vmin = 0.1; + PLFLT vmax = 0.9; + for(int j=0; j<3; j++) { + 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; + } + plwid(1); + plptex(0.5, 0.5, 1.0, 0.0, 0.5, std.string.toString(i)); + } + } +} Property changes on: trunk/examples/d/x02d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/examples/d/x03d.d =================================================================== --- trunk/examples/d/x03d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x03d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -3,10 +3,11 @@ Polar plot demo. */ -import plplot; import std.math; import std.string; +import plplot; + /*--------------------------------------------------------------------------*\ * main * @@ -14,78 +15,73 @@ \*--------------------------------------------------------------------------*/ int main( char[][] args ) { - PLFLT dtr, theta, dx, dy, r, offset; - char[] text; - PLFLT[361] x0, y0; - PLFLT[361] x, y; + string text; - dtr = PI/180.0; - for( size_t i=0; i<=360; i++ ) { + PLFLT dtr = PI/180.0; + PLFLT[361] x0, y0; + for(size_t i=0; i<x0.length; i++) { x0[i] = cos(dtr*i); y0[i] = sin(dtr*i); } /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, 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( size_t i=1; i<=10; i++ ) { - for( size_t j=0; j<=360; j++ ) { + + PLFLT[361] x, y; + for(size_t i=1; i<=10; i++) { + for(size_t j=0; j<x.length; j++) { x[j] = 0.1*i*x0[j]; y[j] = 0.1*i*y0[j]; } /* Draw circles for polar grid */ - plline( 361, cast(PLFLT*)x, cast(PLFLT*)y ); + plline(x, y); } - plcol0( 2 ); - for( size_t i=0; i<=11; i++ ) { - theta = 30.0*i; - dx = cos(dtr*theta); - dy = sin(dtr*theta); + plcol0(2); + for(size_t i=0; i<=11; i++) { + PLFLT theta = 30.0*i; + PLFLT dx = cos(dtr*theta); + PLFLT dy = sin(dtr*theta); /* Draw radial spokes for polar grid */ - pljoin( 0.0, 0.0, dx, dy ); - text = format( "%.0f", round(theta) ); + pljoin(0.0, 0.0, dx, dy); + text = format("%.0f", round(theta)); /* Write labels for angle */ + PLFLT offset; + if(theta<9.99) + offset = 0.45; + else if(theta<99.9) + offset = 0.30; + else + offset = 0.15; - if (theta < 9.99) { - offset = 0.45; - } else if (theta < 99.9) { - offset = 0.30; - } else { - offset = 0.15; - } - /* Slightly off zero to avoid floating point logic flips at 90 and 270 deg. */ - if( dx>=-0.00001 ) - plptex( dx, dy, dx, dy, -offset, toStringz(text) ); + if(dx>=-0.00001) + plptex(dx, dy, dx, dy, -offset, text); else - plptex(dx, dy, -dx, -dy, 1.+offset, toStringz(text) ); + plptex(dx, dy, -dx, -dy, 1.+offset, text); } /* Draw the graph */ - for( size_t i=0; i<=360; i++ ) { + PLFLT r; + for(size_t i=0; i<x.length; i++) { r = sin(dtr*(5*i)); x[i] = x0[i]*r; y[i] = y0[i]*r; } - plcol0( 3 ); - plline( 361, cast(PLFLT*)x, cast(PLFLT*)y ); + plcol0(3); + plline(x, y); - plcol0( 4 ); - plmtex( "t", 2.0, 0.5, 0.5, "#frPLplot Example 3 - r(#gh)=sin 5#gh" ); + plcol0(4); + plmtex("t", 2.0, 0.5, 0.5, "#frPLplot Example 3 - r(#gh)=sin 5#gh"); /* Close the plot at end */ plend(); Modified: trunk/examples/d/x04d.d =================================================================== --- trunk/examples/d/x04d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x04d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -15,12 +15,7 @@ int main( char[][] args ) { /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); @@ -72,7 +67,7 @@ /* Plot ampl vs freq */ plcol0( 2 ); - plline( 101, cast(PLFLT*)freql, cast(PLFLT*)ampl ); + plline(freql, ampl); plcol0( 1 ); plptex( 1.6, -30.0, 1.0, -20.0, 0.5, "-20 dB/decade" ); @@ -89,7 +84,7 @@ plwind( -2.0, 3.0, -100.0, 0.0 ); plbox( "", 0.0, 0, "cmstv", 30.0, 3 ); plcol0( 3 ); - plline( 101, cast(PLFLT*)freql, cast(PLFLT*)phase ); + plline(freql, phase); plcol0( 3 ); plmtex( "r", 5.0, 0.5, 0.5, "Phase shift (degrees)" ); } Modified: trunk/examples/d/x05d.d =================================================================== --- trunk/examples/d/x05d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x05d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -20,12 +20,7 @@ PLFLT delta; /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); Modified: trunk/examples/d/x06d.d =================================================================== --- trunk/examples/d/x06d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x06d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -17,12 +17,7 @@ PLFLT x, y; /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); @@ -40,14 +35,14 @@ plcol0( 15 ); for( size_t i=0; i<=9; i++ ) { text = format( "%d", i ); - plmtex("b", 1.5, (0.1*i+0.05), 0.5, toStringz(text) ); + plmtex("b", 1.5, (0.1*i+0.05), 0.5, text); } size_t k = 0; for( size_t i=0; i<=12; i++ ) { /* Write the digits to the left of the frame */ text = format( "%d", 10*i ); - plmtex( "lv", 1.0, (1.0-(2*i+1)/26.0), 1.0, toStringz(text) ); + plmtex("lv", 1.0, (1.0-(2*i+1)/26.0), 1.0, text); for( size_t j=0; j<=9; j++ ) { x = 0.1*j+0.05; y = 1.25-0.1*i; Modified: trunk/examples/d/x07d.d =================================================================== --- trunk/examples/d/x07d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x07d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -21,12 +21,7 @@ PLFLT x, y; /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); @@ -45,16 +40,16 @@ /* Write the digits below the frame */ plcol0( 15 ); - for( size_t i=0; i<=9; i++ ) { - text=format( "%d", i); - plmtex( "b", 1.5, (0.1*i+0.05), 0.5, toStringz(text) ); + for(size_t i=0; i<=9; i++) { + text = format( "%d", i); + plmtex("b", 1.5, (0.1*i+0.05), 0.5, text); } size_t k = 0; for( size_t i=0; i<=9; i++ ) { /* Write the digits to the left of the frame */ - text=format( "%d", base[l] + 10 * i ); - plmtex( "lv", 1.0, (0.95-0.1*i), 1.0, toStringz(text) ); + text = format( "%d", base[l] + 10 * i ); + plmtex("lv", 1.0, (0.95-0.1*i), 1.0, text); for( size_t j=0; j<=9; j++ ) { x = 0.1*j+0.05; y = 0.95-0.1*i; Modified: trunk/examples/d/x08d.d =================================================================== --- trunk/examples/d/x08d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x08d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -106,13 +106,8 @@ "#frPLplot Example 8 - Alt=20, Az=60" ]; /* Parse and process command line arguments */ - plMergeOpts( cast(PLOptionTable*)options, "x08c options", null ); - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); + if( sombrero ) rosen=false; @@ -168,7 +163,7 @@ 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, toStringz(title[k]) ); + plmtex("t", 1.0, 0.5, 0.5, title[k]); plcol0( 1 ); if( rosen ) plw3d( 1.0, 1.0, 1.0, -1.5, 1.5, -0.5, 1.5, zmin, zmax, alt[k], az[k] ); Modified: trunk/examples/d/x10d.d =================================================================== --- trunk/examples/d/x10d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x10d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -14,12 +14,7 @@ int main( char[][] args ) { /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); Modified: trunk/examples/d/x11d.d =================================================================== --- trunk/examples/d/x11d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x11d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -70,12 +70,7 @@ PLFLT zmin, zmax, step; /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); @@ -141,7 +136,7 @@ } plcol0( 3 ); - plmtex( "t", 1.0, 0.5, 0.5, toStringz(title[k]) ); + plmtex("t", 1.0, 0.5, 0.5, title[k]); } } Modified: trunk/examples/d/x12d.d =================================================================== --- trunk/examples/d/x12d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x12d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -3,27 +3,23 @@ Bar chart demo. */ -import plplot; import std.string; +import plplot; + /*--------------------------------------------------------------------------*\ * main * * Does a simple bar chart, using color fill. If color fill is * unavailable, pattern fill is used instead (automatic). \*--------------------------------------------------------------------------*/ -int main( char[][] args ) +int main(char[][] args) { - char[] string; + string text; PLFLT[10] y0; /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); @@ -41,10 +37,10 @@ plcol0( i+1 ); plpsty( 0 ); plfbox( (1980.+i), y0[i] ); - string = format( "%.0f", y0[i] ); - plptex( (1980.+i+.5), (y0[i]+1.), 1.0, 0.0, .5, toStringz(string) ); - string = format( "%d", 1980+i ); - plmtex( "b", 1.0, ((i+1)*.1-.05), 0.5, toStringz(string) ); + text = format( "%.0f", y0[i] ); + plptex( (1980.+i+.5), (y0[i]+1.), 1.0, 0.0, .5, text); + text = format( "%d", 1980+i ); + plmtex("b", 1.0, ((i+1)*.1-.05), 0.5, text); } /* Don't forget to call plend() to finish off! */ @@ -61,5 +57,5 @@ plfill( 4, cast(PLFLT*)x, cast(PLFLT*)y ); plcol0( 1 ); pllsty( 1 ); - plline( 4, cast(PLFLT*)x, cast(PLFLT*)y ); + plline(x, y); } Modified: trunk/examples/d/x13d.d =================================================================== --- trunk/examples/d/x13d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x13d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -26,12 +26,7 @@ PLFLT[5] per = [ 10.0, 32.0, 12.0, 30.0, 16.0 ]; /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); @@ -59,7 +54,7 @@ plpsty( (i+3)%8+1 ); plfill( j, cast(PLFLT*)x, cast(PLFLT*)y ); plcol0( 1 ); - plline( j, cast(PLFLT*)x, cast(PLFLT*)y ); + plline(x, y); just = (2.*PI/500.)*(theta0 + theta1)/2.; dx = .25*cos(just); dy = .25*sin(just); @@ -68,12 +63,12 @@ else just = 1.; - plptex( (x[j/2]+dx), (y[j/2]+dy), 1.0, 0.0, just, toStringz(text[i]) ); + plptex((x[j/2]+dx), (y[j/2]+dy), 1.0, 0.0, just, text[i]); theta0 = theta-dthet; } plfont( 2 ); plschr( 0., 1.3 ); - plptex( 5.0, 9.0, 1.0, 0.0, 0.5, "Percentage of Sales" ); + plptex(5.0, 9.0, 1.0, 0.0, 0.5, "Percentage of Sales"); /* Don't forget to call PLEND to finish off! */ plend(); Modified: trunk/examples/d/x17d.d =================================================================== --- trunk/examples/d/x17d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x17d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -16,12 +16,7 @@ int main( char[][] args ) { /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* If db is used the plot is much more smooth. However, because of the async X behaviour, one does not have a real-time scripcharter. */ Modified: trunk/examples/d/x23d.d =================================================================== --- trunk/examples/d/x23d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x23d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -224,12 +224,7 @@ string cmdString; /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); plinit(); @@ -271,8 +266,8 @@ cmdString = format("##[0x%.4x]", Type1[offset[page]+slice]); else if(page>=4) cmdString = format("##[0x%.4x]", lo[page]+slice); - plptex(x, y+yoffset, 1., 0., 0.5, &toStringz(cmdString)[1]); - plptex(x, y-yoffset, 1., 0., 0.5, toStringz(cmdString)); + plptex(x, y+yoffset, 1., 0., 0.5, cmdString[1..cmdString.length]); + plptex(x, y-yoffset, 1., 0., 0.5, cmdString); } slice++; } @@ -280,7 +275,7 @@ /* Page title */ plschr(0., 1.0); - plmtex("t", 1.5, 0.5, 0.5, toStringz(title[page])); + plmtex("t", 1.5, 0.5, 0.5, title[page]); } /* Demonstrate methods of getting the current fonts */ @@ -340,7 +335,7 @@ family[family_index], style[style_index], weight[weight_index], family[family_index], style[style_index], weight[weight_index]); } - plptex(0., 1.-(i+0.5)*dy, 1., 0., 0., toStringz(text)); + plptex(0., 1.-(i+0.5)*dy, 1., 0., 0., text); } plschr(0., 1.0); Modified: trunk/examples/d/x24d.d =================================================================== --- trunk/examples/d/x24d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x24d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -121,12 +121,7 @@ int main( char[][] args ) { /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); plinit(); @@ -152,7 +147,7 @@ plcol0(0); for(int i = 0; i < 12; i++) - plptex(sx[i], sy[i], 1.0, 0.0, 0.5, toStringz(peace[i])); + plptex(sx[i], sy[i], 1.0, 0.0, 0.5, peace[i]); plend(); return 0; Modified: trunk/examples/d/x25d.d =================================================================== --- trunk/examples/d/x25d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x25d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -16,12 +16,7 @@ int main( char[][] args ) { /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plssub(3, 3); @@ -88,7 +83,7 @@ plfill(x0.length, cast(PLFLT*)x0, cast(PLFLT*)y0); plcol0(2); pllsty(1); - plline(y0.length, cast(PLFLT*)x0, cast(PLFLT*)y0); + plline(x0, y0); } } Modified: trunk/examples/d/x27d.d =================================================================== --- trunk/examples/d/x27d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x27d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -52,14 +52,8 @@ /* plplot initialization */ /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); - /* Initialize plplot */ plinit(); @@ -102,9 +96,8 @@ void spiro(PLFLT[] params) { const int npnt=20000; - static PLFLT xcoord[npnt+1]; - static PLFLT ycoord[npnt+1]; - + PLFLT[] xcoord, ycoord; + /* Fill the coordinates */ int windings = cast(int)(params[3]); int steps = npnt/windings; @@ -117,6 +110,8 @@ PLFLT phi; PLFLT phiw; + xcoord.length=windings*steps+1; + ycoord.length=windings*steps+1; for(int i=0; i<=windings*steps; i++ ) { phi = i*dphi; phiw = (params[0]-params[1])/params[1]*phi; @@ -142,5 +137,5 @@ plwind(xmin, xmax, ymin, ymax) ; plcol0(1); - plline(1+steps*windings, cast(PLFLT*)xcoord, cast(PLFLT*)ycoord ) ; + plline(xcoord, ycoord ) ; } Modified: trunk/examples/d/x29d.d =================================================================== --- trunk/examples/d/x29d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x29d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -50,12 +50,7 @@ int main( char[][] args ) { /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); @@ -135,7 +130,7 @@ plcol0(4); - plline(npts, cast(PLFLT*)x, cast(PLFLT*)y); + plline(x, y); plcol0(2); plerrx(npts, cast(PLFLT*)xerr1, cast(PLFLT*)xerr2, cast(PLFLT*)y); plcol0(3); @@ -186,7 +181,7 @@ plcol0(4); - plline(npts, cast(PLFLT*)x, cast(PLFLT*)y); + plline(x, y); plprec(0,0); } @@ -229,6 +224,6 @@ /* Rescale symbol size (used by plpoin) by 0.5 */ plssym(0.0,0.5); plpoin(npts, cast(PLFLT*)x, cast(PLFLT*)y, 2); - plline(npts, cast(PLFLT*)x, cast(PLFLT*)y); + plline(x, y); } } Modified: trunk/examples/d/x30d.d =================================================================== --- trunk/examples/d/x30d.d 2009-05-11 08:14:56 UTC (rev 9961) +++ trunk/examples/d/x30d.d 2009-05-11 08:29:49 UTC (rev 9962) @@ -48,12 +48,7 @@ int main( char[][] args ) { /* Parse and process command line arguments */ - char*[] c_args = new char*[args.length]; - foreach( size_t i, char[] arg; args ) { - c_args[i] = toStringz(arg); - } - int argc = c_args.length; - plparseopts( &argc, cast(char**)c_args, PL_PARSE_FULL ); + plparseopts(args, PL_PARSE_FULL); plinit(); plscmap0n(4); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-05-29 20:07:13
|
Revision: 10014 http://plplot.svn.sourceforge.net/plplot/?rev=10014&view=rev Author: smekal Date: 2009-05-29 20:06:53 +0000 (Fri, 29 May 2009) Log Message: ----------- Fix svn properties. Modified Paths: -------------- trunk/examples/d/x01d.d trunk/examples/d/x09d.d trunk/examples/d/x14d.d trunk/examples/d/x15d.d trunk/examples/d/x18d.d trunk/examples/d/x19d.d Property Changed: ---------------- trunk/examples/d/x01d.d trunk/examples/d/x09d.d trunk/examples/d/x14d.d trunk/examples/d/x15d.d trunk/examples/d/x18d.d trunk/examples/d/x19d.d Modified: trunk/examples/d/x01d.d =================================================================== --- trunk/examples/d/x01d.d 2009-05-29 19:51:53 UTC (rev 10013) +++ trunk/examples/d/x01d.d 2009-05-29 20:06:53 UTC (rev 10014) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ Simple line plot and multiple windows demo. Property changes on: trunk/examples/d/x01d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Modified: trunk/examples/d/x09d.d =================================================================== --- trunk/examples/d/x09d.d 2009-05-29 19:51:53 UTC (rev 10013) +++ trunk/examples/d/x09d.d 2009-05-29 20:06:53 UTC (rev 10014) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ Contour plot demo. Property changes on: trunk/examples/d/x09d.d ___________________________________________________________________ Deleted: svn:executable - * Added: svn:keywords + Author Date Id Revision Modified: trunk/examples/d/x14d.d =================================================================== --- trunk/examples/d/x14d.d 2009-05-29 19:51:53 UTC (rev 10013) +++ trunk/examples/d/x14d.d 2009-05-29 20:06:53 UTC (rev 10014) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ Demo of multiple stream/window capability (requires Tk or Tcl-DP). Property changes on: trunk/examples/d/x14d.d ___________________________________________________________________ Deleted: svn:executable - * Added: svn:keywords + Author Date Id Revision Modified: trunk/examples/d/x15d.d =================================================================== --- trunk/examples/d/x15d.d 2009-05-29 19:51:53 UTC (rev 10013) +++ trunk/examples/d/x15d.d 2009-05-29 20:06:53 UTC (rev 10014) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ Shade plot demo. Property changes on: trunk/examples/d/x15d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Modified: trunk/examples/d/x18d.d =================================================================== --- trunk/examples/d/x18d.d 2009-05-29 19:51:53 UTC (rev 10013) +++ trunk/examples/d/x18d.d 2009-05-29 20:06:53 UTC (rev 10014) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ 3-d line and point plot demo. Adapted from x08c.c. */ Property changes on: trunk/examples/d/x18d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Modified: trunk/examples/d/x19d.d =================================================================== --- trunk/examples/d/x19d.d 2009-05-29 19:51:53 UTC (rev 10013) +++ trunk/examples/d/x19d.d 2009-05-29 20:06:53 UTC (rev 10014) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ Illustrates backdrop plotting of world, US maps. Contributed by Wesley Ebisuzaki. Property changes on: trunk/examples/d/x19d.d ___________________________________________________________________ Added: 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...> - 2009-06-28 00:59:45
|
Revision: 10079 http://plplot.svn.sourceforge.net/plplot/?rev=10079&view=rev Author: airwin Date: 2009-06-28 00:55:21 +0000 (Sun, 28 Jun 2009) Log Message: ----------- Add implemented examples to build lists for both the traditional and new build systems for the installed examples. These lists are now consistent with what is built by the core build system for ctest. Modified Paths: -------------- trunk/examples/d/CMakeLists.txt_installed_examples_d trunk/examples/d/Makefile.examples.in Modified: trunk/examples/d/CMakeLists.txt_installed_examples_d =================================================================== --- trunk/examples/d/CMakeLists.txt_installed_examples_d 2009-06-27 16:30:23 UTC (rev 10078) +++ trunk/examples/d/CMakeLists.txt_installed_examples_d 2009-06-28 00:55:21 UTC (rev 10079) @@ -27,16 +27,23 @@ "06" "07" "08" + "09" "10" "11" "12" "13" "14" + "15" + "16" "17" + "18" + "19" "23" "24" "25" + "26" "27" +# "28" "29" "30" ) Modified: trunk/examples/d/Makefile.examples.in =================================================================== --- trunk/examples/d/Makefile.examples.in 2009-06-27 16:30:23 UTC (rev 10078) +++ trunk/examples/d/Makefile.examples.in 2009-06-28 00:55:21 UTC (rev 10079) @@ -27,19 +27,29 @@ @pkg_config_true@RPATHCMD = @RPATHCMD@ EXECUTABLES_list = \ + x01d$(EXEEXT) \ + x02d$(EXEEXT) \ x03d$(EXEEXT) \ x04d$(EXEEXT) \ x05d$(EXEEXT) \ x06d$(EXEEXT) \ x07d$(EXEEXT) \ x08d$(EXEEXT) \ + x09d$(EXEEXT) \ x10d$(EXEEXT) \ x11d$(EXEEXT) \ x12d$(EXEEXT) \ x13d$(EXEEXT) \ + x14d$(EXEEXT) \ + x15d$(EXEEXT) \ + x16d$(EXEEXT) \ + x17d$(EXEEXT) \ + x18d$(EXEEXT) \ + x19d$(EXEEXT) \ x23d$(EXEEXT) \ x24d$(EXEEXT) \ x25d$(EXEEXT) \ + x26d$(EXEEXT) \ x27d$(EXEEXT) \ x29d$(EXEEXT) \ x30d$(EXEEXT) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-08-06 19:05:59
|
Revision: 10217 http://plplot.svn.sourceforge.net/plplot/?rev=10217&view=rev Author: airwin Date: 2009-08-06 19:05:46 +0000 (Thu, 06 Aug 2009) Log Message: ----------- Use same CMakeLists.txt file for the core build (if BUILD_TEST=ON) and install of the D examples and the install-tree build of the D examples. Modified Paths: -------------- trunk/examples/d/CMakeLists.txt Removed Paths: ------------- trunk/examples/d/CMakeLists.txt_installed_examples_d Modified: trunk/examples/d/CMakeLists.txt =================================================================== --- trunk/examples/d/CMakeLists.txt 2009-08-06 19:04:53 UTC (rev 10216) +++ trunk/examples/d/CMakeLists.txt 2009-08-06 19:05:46 UTC (rev 10217) @@ -2,6 +2,7 @@ ### Process this file with cmake to produce Makefile ### # Copyright (C) 2008 Werner Smekal +# Copyright (C) 2009 Alan W. Irwin # # This file is part of PLplot. # @@ -18,7 +19,12 @@ # along with PLplot; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -set(d_SRCS) +# N.B. This file is used for both the core build (which installs the examples +# and optionally [depending on BUILD_TEST} builds them) and the installed +# examples build. The core build has BUILD_TEST OFF or ON at user option +# and CORE_BUILD always ON. The installed examples build always has +# BUILD_TEST ON and CORE_BUILD OFF. + set(d_STRING_INDICES "01" "02" @@ -44,45 +50,52 @@ "25" "26" "27" -# "28" + # "28" "29" "30" ) -if(BUILD_TEST) - remove_definitions("-DHAVE_CONFIG_H") - include_directories( - ${CMAKE_SOURCE_DIR}/bindings/d +if(CORE_BUILD) + set(d_SRCS) + foreach(STRING_INDEX ${d_STRING_INDICES}) + set(d_SRCS ${d_SRCS} x${STRING_INDEX}d.d) + endforeach(STRING_INDEX ${d_STRING_INDICES}) + + install(FILES ${d_SRCS} + DESTINATION ${DATA_DIR}/examples/d ) -endif(BUILD_TEST) -foreach(STRING_INDEX ${d_STRING_INDICES}) - set(d_SRCS ${d_SRCS} x${STRING_INDEX}d.d) - if(BUILD_TEST) - add_executable(x${STRING_INDEX}d x${STRING_INDEX}d.d) - target_link_libraries(x${STRING_INDEX}d plplotdmd${LIB_TAG} plplot${LIB_TAG} ${MATH_LIB}) - endif(BUILD_TEST) -endforeach(STRING_INDEX ${d_STRING_INDICES}) -set_source_files_properties(${d_SRCS} - PROPERTIES OBJECT_DEPENDS ${CMAKE_SOURCE_DIR}/bindings/d/plplot.d) + set(DC ${CMAKE_D_COMPILER}) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in + ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + ) -install(FILES ${d_SRCS} - DESTINATION ${DATA_DIR}/examples/d -) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + DESTINATION ${DATA_DIR}/examples/d + RENAME Makefile + ) -set(DC ${CMAKE_D_COMPILER}) -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in - ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples -) + install(FILES CMakeLists.txt + DESTINATION ${DATA_DIR}/examples/d + ) +endif(CORE_BUILD) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples - DESTINATION ${DATA_DIR}/examples/d - RENAME Makefile -) +if(BUILD_TEST) + if(CORE_BUILD) + remove_definitions("-DHAVE_CONFIG_H") + include_directories( + ${CMAKE_SOURCE_DIR}/bindings/d + ) + else(CORE_BUILD) + include_directories(${INCLUDE_DIR}) + endif(CORE_BUILD) -install(FILES CMakeLists.txt_installed_examples_d - DESTINATION ${DATA_DIR}/examples/d - RENAME CMakeLists.txt - ) + set_property(GLOBAL PROPERTY TARGETS_examples_d) + foreach(STRING_INDEX ${d_STRING_INDICES}) + add_executable(x${STRING_INDEX}d x${STRING_INDEX}d.d) + target_link_libraries(x${STRING_INDEX}d plplotdmd${LIB_TAG} plplot${LIB_TAG} ${MATH_LIB}) + set_property(GLOBAL APPEND PROPERTY TARGETS_examples_d x${STRING_INDEX}d) + endforeach(STRING_INDEX ${d_STRING_INDICES}) +endif(BUILD_TEST) Deleted: trunk/examples/d/CMakeLists.txt_installed_examples_d =================================================================== --- trunk/examples/d/CMakeLists.txt_installed_examples_d 2009-08-06 19:04:53 UTC (rev 10216) +++ trunk/examples/d/CMakeLists.txt_installed_examples_d 2009-08-06 19:05:46 UTC (rev 10217) @@ -1,57 +0,0 @@ -# d/CMakeLists.txt for installed PLplot examples -### Process this file with cmake to produce Makefile -### -# Copyright (C) 2009 Alan W. Irwin -# -# This file is part of PLplot. -# -# PLplot is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; version 2 of the License. -# -# PLplot is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# along with PLplot; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -set(d_STRING_INDICES - "01" - "02" - "03" - "04" - "05" - "06" - "07" - "08" - "09" - "10" - "11" - "12" - "13" - "14" - "15" - "16" - "17" - "18" - "19" - "23" - "24" - "25" - "26" - "27" -# "28" - "29" - "30" - ) - -include_directories(${INCLUDE_DIR}) -foreach(STRING_INDEX ${d_STRING_INDICES}) - set(d_SRCS ${d_SRCS} x${STRING_INDEX}d.d) - add_executable(x${STRING_INDEX}d x${STRING_INDEX}d.d) - target_link_libraries(x${STRING_INDEX}d plplotdmd${LIB_TAG} plplot${LIB_TAG} ${MATH_LIB}) - set_property(GLOBAL APPEND PROPERTY TARGETS_examples_d x${STRING_INDEX}d) -endforeach(STRING_INDEX ${d_STRING_INDICES}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-08-13 18:25:29
|
Revision: 10243 http://plplot.svn.sourceforge.net/plplot/?rev=10243&view=rev Author: smekal Date: 2009-08-13 18:25:21 +0000 (Thu, 13 Aug 2009) Log Message: ----------- Fixed D examples 13 and 17. Modified Paths: -------------- trunk/examples/d/x13d.d trunk/examples/d/x17d.d Modified: trunk/examples/d/x13d.d =================================================================== --- trunk/examples/d/x13d.d 2009-08-13 13:24:19 UTC (rev 10242) +++ trunk/examples/d/x13d.d 2009-08-13 18:25:21 UTC (rev 10243) @@ -1,13 +1,15 @@ -/* +/* $Id$ Pie chart demo. */ -import plplot; import std.string; +import std.stdio; import std.math; -char[] text[] = [ "Maurice", +import plplot; + +string[] text = [ "Maurice", "Geoffrey", "Alan", "Rafael", @@ -20,55 +22,66 @@ \*--------------------------------------------------------------------------*/ int main( char[][] args ) { - int dthet, theta0, theta1, theta; - PLFLT just, dx, dy; - PLFLT[500] x, y; - PLFLT[5] per = [ 10.0, 32.0, 12.0, 30.0, 16.0 ]; - /* Parse and process command line arguments */ plparseopts(args, PL_PARSE_FULL); /* Initialize plplot */ plinit(); - plenv( 0., 10., 0., 10., 1, -2 ); + pladv( 0 ); + + /* Ensure window has aspect ratio of one so circle is + * plotted as a circle. */ + plvasp( 1.0 ); + plwind( 0.0, 10.0, 0.0, 10.0 ); plcol0( 2 ); + /* n.b. all theta quantities scaled by 2*M_PI/500 to be integers to avoid * floating point logic problems. */ - theta0 = 0; - dthet = 1; - for( size_t i=0; i<=4; i++ ) { + int theta0 = 0; + int dthet = 1; + int theta1, theta; + PLFLT just, dx, dy; + PLFLT[] per = [ 10.0, 32.0, 12.0, 30.0, 16.0 ]; + PLFLT[] x, y; + for( size_t i=0; i<5; i++ ) { size_t j = 0; - x[j] = 5.; - y[j++] = 5.; + /* n.b. the theta quantities multiplied by 2*M_PI/500 afterward so * in fact per is interpreted as a percentage. */ theta1 = cast(int)(theta0+5.0*per[i]); if( i==4 ) theta1 = 500; + + // set size of data arrays + x.length = y.length = (theta1-theta0)/dthet+2; + x[j] = 5.0; + y[j++] = 5.0; + for( theta=theta0; theta<=theta1; theta+=dthet ) { - x[j] = 5+3*cos((2.*PI/500.)*theta); - y[j++] = 5+3*sin((2.*PI/500.)*theta); + x[j] = 5.0+3.0*cos((2.0*PI/500.)*theta); + y[j++] = 5.0+3.0*sin((2.0*PI/500.)*theta); } + plcol0( i+1 ); plpsty( (i+3)%8+1 ); - plfill(x, y); + plfill( x, y ); plcol0( 1 ); - plline(x, y); - just = (2.*PI/500.)*(theta0 + theta1)/2.; - dx = .25*cos(just); - dy = .25*sin(just); + plline( x, y ); + just = (2.0*PI/500.0)*(theta0 + theta1)/2.0; + dx = 0.25*cos(just); + dy = 0.25*sin(just); if( (theta0+theta1)<250 || (theta0+theta1)>750 ) - just = 0.; + just = 0.0; else - just = 1.; + just = 1.0; - plptex((x[j/2]+dx), (y[j/2]+dy), 1.0, 0.0, just, text[i]); + plptex( x[j/2]+dx, y[j/2]+dy, 1.0, 0.0, just, text[i]); theta0 = theta-dthet; } plfont( 2 ); plschr( 0., 1.3 ); - plptex(5.0, 9.0, 1.0, 0.0, 0.5, "Percentage of Sales"); + plptex( 5.0, 9.0, 1.0, 0.0, 0.5, "Percentage of Sales" ); /* Don't forget to call PLEND to finish off! */ plend(); Modified: trunk/examples/d/x17d.d =================================================================== --- trunk/examples/d/x17d.d 2009-08-13 13:24:19 UTC (rev 10242) +++ trunk/examples/d/x17d.d 2009-08-13 18:25:21 UTC (rev 10243) @@ -20,8 +20,8 @@ /* If db is used the plot is much more smooth. However, because of the async X behaviour, one does not have a real-time scripcharter. */ - plsetopt("db", ""); - plsetopt("np", ""); + /* plsetopt("db", ""); */ + /* plsetopt("np", ""); */ /* User sets up plot completely except for window and data * Eventually settings in place when strip chart is created will be @@ -67,7 +67,7 @@ /* From here on, we're handling all errors here */ PLINT pl_errcode; char[160] errmsg; - plsError( &pl_errcode, cast(char*)errmsg ); + plsError( &pl_errcode, errmsg.ptr ); PLINT id1; plstripc(&id1, "bcnst", "bcnstv", @@ -79,7 +79,7 @@ "t", "", "Strip chart demo"); if(pl_errcode) { - writefln("%s\n", errmsg); // TODO: to stderr + writefln("%s", errmsg); // TODO: to stderr return 1; } @@ -116,7 +116,8 @@ plstripa( id1, 2, t, y3 ); if( n%5 ) plstripa( id1, 3, t, y4 ); - pleop(); /* use double buffer (-db on command line) */ + + /* pleop(); */ /* use double buffer (-db on command line) */ } /* Destroy strip chart and it's memory */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2011-01-11 00:26:45
|
Revision: 11468 http://plplot.svn.sourceforge.net/plplot/?rev=11468&view=rev Author: airwin Date: 2011-01-11 00:26:38 +0000 (Tue, 11 Jan 2011) Log Message: ----------- Property tweaks. Modified Paths: -------------- trunk/examples/d/x16d.d trunk/examples/d/x26d.d Property Changed: ---------------- trunk/examples/d/x16d.d trunk/examples/d/x26d.d Modified: trunk/examples/d/x16d.d =================================================================== --- trunk/examples/d/x16d.d 2011-01-11 00:10:48 UTC (rev 11467) +++ trunk/examples/d/x16d.d 2011-01-11 00:26:38 UTC (rev 11468) @@ -1,4 +1,4 @@ -/* $Id: $ +/* $Id$ * * plshade demo, using color fill. * Property changes on: trunk/examples/d/x16d.d ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Modified: trunk/examples/d/x26d.d =================================================================== --- trunk/examples/d/x26d.d 2011-01-11 00:10:48 UTC (rev 11467) +++ trunk/examples/d/x26d.d 2011-01-11 00:26:38 UTC (rev 11468) @@ -1,6 +1,6 @@ /* -*- coding: utf-8; -*- * - * $Id: $ + * $Id$ * * Multi-lingual version of the first page of example 4. * Property changes on: trunk/examples/d/x26d.d ___________________________________________________________________ Added: 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...> - 2011-01-11 00:37:30
|
Revision: 11471 http://plplot.svn.sourceforge.net/plplot/?rev=11471&view=rev Author: airwin Date: 2011-01-11 00:37:24 +0000 (Tue, 11 Jan 2011) Log Message: ----------- Change $Id to correct form. Modified Paths: -------------- trunk/examples/d/x04d.d trunk/examples/d/x05d.d Modified: trunk/examples/d/x04d.d =================================================================== --- trunk/examples/d/x04d.d 2011-01-11 00:35:49 UTC (rev 11470) +++ trunk/examples/d/x04d.d 2011-01-11 00:37:24 UTC (rev 11471) @@ -1,4 +1,4 @@ -/* $Id: +/* $Id$ * * Log plot demo. */ Modified: trunk/examples/d/x05d.d =================================================================== --- trunk/examples/d/x05d.d 2011-01-11 00:35:49 UTC (rev 11470) +++ trunk/examples/d/x05d.d 2011-01-11 00:37:24 UTC (rev 11471) @@ -1,4 +1,4 @@ -/* $Id: +/* $Id$ * * Histogram demo. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |