//Main code for creating chart. //Note: the argument chartIndex is unused because this demo only has 1 chart. public void createChart(WinChartViewer viewer, int chartIndex, int minvalue, int maxvalue) { ThreeDScatterChart c = new ThreeDScatterChart(1188, 757); //전체 크기수정(하얀부분) winchart = viewer; min = minvalue; //좌표값의 최소값, 최대값을 정할수있게 만들어뒀습니다. max = maxvalue; double[] xData1 = { minvalue, minvalue, minvalue, minvalue }; double[] yData1 = { minvalue, minvalue, minvalue, minvalue }; double[] zData1 = { minvalue, minvalue, minvalue, minvalue }; double[] xData2 = { maxvalue, maxvalue, maxvalue, maxvalue }; double[] yData2 = { maxvalue, maxvalue, maxvalue, maxvalue }; double[] zData2 = { maxvalue, maxvalue, maxvalue, maxvalue }; // 필독=========================================== // // 데이터는 세로방향으로 점하나씩 만들어지게 되있습니다. 한마디로 double[] 하나당 점이 4개씩찍히니 값을 일치시켜주는게 좋습니다. // //================================================ c.addTitle("Data Visualization", "Times New Roman", 12); // 제목, 폰트, 크기 // Set the center of the plot region at (350, 240), and set width x depth x height to // 360 x 360 x 270 pixels c.setPlotRegion(600, 300, 600, 600, 350); //이것을 이용해서 그래프의 크기를 조절할수있습니다. c.setBackground(0xffffff, 0x000000); c.setViewAngle(15, 30); // 보는각도입니다. ThreeDScatterGroup g = c.addScatterGroup(xData1, yData1, zData1, "", Chart.GlassSphere2Shape, 0, Chart.SameAsMainColor); c.addScatterGroup(xData2, yData2, zData2, "", Chart.GlassSphere2Shape, 0, Chart.SameAsMainColor); // 점 추가시키는부분 //g 없어도 잘돌아갑니다. for (int i = 0; i < PL.Count(); i++) { c.addScatterGroup(PL[i].Xd, PL[i].Yd, PL[i].Zd, "", Chart.GlassSphere2Shape, 10, Chart.SameAsMainColor); }//좌표를 추가하면 List에 저장되서 새로그리는것 //GlassSphere2Shape // Add grey (888888) drop lines to the symbols g.setDropLine(0x888888); //뭔지모름 없어도잘돌아감 // Add a color axis (the legend) in which the left center is anchored at (645, 220). Set // the length to 200 pixels and the labels on the right side. Use smooth gradient // coloring. // Set the x, y and z axis titles using 10 points Arial Bold font c.xAxis().setTitle("X-Axis Place Holder", "Arial Bold", 10); c.yAxis().setTitle("Y-Axis Place Holder", "Arial Bold", 10); c.zAxis().setTitle("Z-Axis Place Holder", "Arial Bold", 10); c.xAxis().setColors(0xffffff, 0x000000); c.yAxis().setColors(0xffffff, 0x000000); c.zAxis().setColors(0xffffff, 0x000000); // Output the chart viewer.Chart = c; //include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("clickable", "", "title='(x={x|p}, y={y|p}, z={z|p})'"); }
//Main code for creating chart. //Note: the argument chartIndex is unused because this demo only has 1 chart. public void createChart(WinChartViewer viewer, SizeF scale) { this.viewer = viewer; this.scale = scale; // The XYZ data for the 3D scatter chart as 3 random data series // Create a ThreeDScatterChart object c = new ThreeDScatterChart( Convert.ToInt32(424 * scale.Width), Convert.ToInt32(352 * scale.Height) ); c.setBackground(725538, 725538, 0);//7913160 jasny niebieski 725538 ciemny float labelFontSize = 9 * scale.Height; c.xAxis().setLabelStyle("Arial Bold", labelFontSize, 7913160); c.yAxis().setLabelStyle("Arial Bold", labelFontSize, 7913160); c.zAxis().setLabelStyle("Arial Bold", labelFontSize, 7913160); // Add a title to the chart using 20 points Times New Roman Italic font c.addTitle(" ", "Calibri", labelFontSize * 2, 7913160); // Set the center of the plot region at (350, 280), and set width x depth x height to // 360 x 360 x 270 pixels //c.setPlotRegion(212, 176, 180, 180, 135); c.setPlotRegion( Convert.ToInt32(212 * scale.Width), Convert.ToInt32(176 * scale.Height), Convert.ToInt32(180 * scale.Height), Convert.ToInt32(180 * scale.Height), Convert.ToInt32(135 * scale.Height) ); // Color palette for the legend //int[] color_palette = new int[] { 15754320, 14643553, 13532786, 12422019, 11245461, 10134694, 9023927, 7913160 }; //inverted int[] color_palette = new int[] { 2461197, 9029689, 16638029, 16621366, 16736768 }; // Add a scatter group to the chart using 11 pixels glass sphere symbols, in which the // color depends on the z value of the symbol c.addScatterGroup(xData, yData, zData, "", Chart.GlassSphere2Shape, 11, Chart.SameAsMainColor); //TODO: //Set the point color by the wind speed // Wall thicknes, wall color, wall grid c.setWallThickness(1, 1, 1); c.setWallColor(725538, 725538, 725538); c.setWallGrid(7913160, 7913160, 7913160); // Add a color axis (the legend) in which the left center is anchored at (645, 270). Set // the length to 200 pixels and the labels on the right side. // Set the colors of the axis elements c.setColorAxis( Convert.ToInt32(370 * scale.Width), Convert.ToInt32(175 * scale.Height), Chart.Left, 100, Chart.Right ).setColors(725538, 7913160, 7913160, 7913160); //set gradient to true and the color palette for the color axis, c.colorAxis().setColorGradient(true, color_palette); // Set the x, y and z axis titles using 10 points Arial Bold font c.xAxis().setTitle("Longitude", "Calibri", labelFontSize, 7913160); c.yAxis().setTitle("Latitude", "Calibri", labelFontSize, 7913160); c.zAxis().setTitle("Altitude", "Calibri", labelFontSize, 7913160); // Output the chart viewer.Chart = c; //include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("clickable", "", "title='(x={x|p}, y={y|p}, z={z|p}'"); }