Platforms to show: All Mac Windows Linux Cross-Platform

/ChartDirector/High Resolution Chart Examples/surface3


Required plugins for this example: MBS ChartDirector Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /ChartDirector/High Resolution Chart Examples/surface3

This example is the version from Sun, 17th Mar 2012.

Project "surface3.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
EventHandler Sub Open() const f=4 // scale factor, 1 for screen and 4 or more for printing // The x and y coordinates of the grid dim dataX(-1) as double = array(-10.0, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) dim dataY(-1) as double = array(-10.0, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) // The values at the grid points. In this example, we will compute the values // using the formula z = Sin(x * x / 128 - y * y / 256 + 3) * Cos(x / 4 + 1 - // Exp(y / 8)) dim dataZ(21*21-1) as double for yIndex as integer = 0 to UBound(datay) dim y as double = dataY(yIndex) for xIndex as integer = 0 to UBound(datax) dim x as double = dataX(xIndex) dataZ(yIndex * 21 + xIndex) = sin(x * x / 128 - y * y / 256 + 3) * cos(x / 4 + 1 - exp(y / 8)) next next // Create a SurfaceChart object of size 750 x 600 pixels dim c as new CDSurfaceChartMBS(750, 600) // Add a title to the chart using 20 points Times New Roman Italic font call c.addTitle("Surface Energy Density ", "timesi.ttf", 20) // Set the center of the plot region at (380, 260), and set width x depth x // height to 360 x 360 x 270 pixels c.setPlotRegion(380, 260, 360, 360, 270) // Set the elevation and rotation angles to 30 and 210 degrees c.setViewAngle(30, 210) // Set the perspective level to 60 c.setPerspective(60) // Set the data to use to plot the chart c.setData(dataX, dataY, dataZ) // Spline interpolate data to a 80 x 80 grid for a smooth surface c.setInterpolation(80, 80) // Use semi-transparent black (c0000000) for x and y major surface grid lines. // Use dotted style for x and y minor surface grid lines. dim majorGridColor as integer = &hc0000000 dim minorGridColor as integer = c.dashLineColor(majorGridColor, c.kDotLine) c.setSurfaceAxisGrid(majorGridColor, majorGridColor, minorGridColor, minorGridColor) // Set contour lines to semi-transparent white (80ffffff) c.setContourColor(&h80ffffff) // Add a color axis (the legend) in which the left center is anchored at (665, // 280). Set the length to 200 pixels and the labels on the right side. call c.setColorAxis(665, 280, c.kLeft, 200, c.kRight) // Set the x, y and z axis titles using 12 points Arial Bold font call c.xAxis.setTitle("X Title"+EndOfLine.UNIX+"Placeholder", "arialbd.ttf", 12) call c.yAxis.setTitle("Y Title"+EndOfLine.UNIX+"Placeholder", "arialbd.ttf", 12) call c.zAxis.setTitle("Z Title"+EndOfLine.UNIX+"Placeholder", "arialbd.ttf", 12) // Output the chart Backdrop=c.makechartPicture Width=c.getWidth Height=c.getHeight End EventHandler
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
End Project

See also:

The items on this page are in the following plugins: MBS ChartDirector Plugin.


The biggest plugin in space...