Xojo Developer Conference
25/27th April 2018 in Denver.
MBS Xojo Conference
6/7th September 2018 in Munich, Germany.

Platforms to show: All Mac Windows Linux Cross-Platform

/ChartDirector/surface3 red colors
Function:
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/surface3 red colors
This example is the version from Tue, 12th Nov 2012.
Project "surface3 red colors.rbp"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
EventHandler Sub Open() // 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) 'Synchrozine the color axis with itself. This has the effect of breaking the default synchronization with the z-axis. Call c.colorAxis.syncAxis(c.colorAxis, 0, 0) dim colors() as integer // red colors colors.Append &h110000 colors.Append &h220000 colors.Append &h330000 colors.Append &h440000 colors.Append &h550000 colors.Append &h660000 colors.Append &h770000 colors.Append &h880000 colors.Append &h990000 colors.Append &hAA0000 colors.Append &hbb0000 colors.Append &hcc0000 colors.Append &hdd0000 colors.Append &hee0000 colors.Append &hFF0000 'Now can set the axis scale Call c.colorAxis.setLinearScale(-0.6, 0.6, 0.1) Call c.colorAxis.setColorGradient(false, colors) // 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 End EventHandler
End Class