Java中使用Draw2D和SWT绘图

http://tech.ddvip.com   2007年07月23日    社区交流

内容摘要:您的选择被限定在了 AWT 或 Swing 上。为了最大限度地减少对第三方工具箱的依赖,或者为了简化绘图基础,可以考虑使用 Draw2D,并编写自己的代码来制图或绘图。

  清单 2. 计算 X 坐标

private int[] getXCoordinates(ArrayList seriesData){
int xSpan = (int)GraFixConstants.xSpan;
      int longestSeries = Utilities.getLongestSeries(seriesData);
      int numSegments = 
      ((double[])seriesData.get(longestSeries)).length;    
      int sectionWidth = 
      (int)xSpan / numSegments; //want to divide span of xAxis
    
      int xPositions[] = 
      new int[numSegments]; // will contain X-coordinate of all dots.
for(int i=0; i<numSegments; i++){
 xPositions[i]= 
 (i+1)*sectionWidth;//dots spaced at distance of sectionWidth  
}
return xPositions;
}

  Y 坐标:Y 坐标是某一个点距离原点的纵向距离。计算 Y 坐标要将某一个值按比例从一个范围缩放到另一个范围。例如,给出相同的集合 {10,20,30,40},您可以看出,数据的范围是 0 到 40,新的范围就是 Y 坐标轴的跨度(高度)。假设 Y 坐标轴的高度为 400,那么第一个元素(10)的高度将是100,第二个元素的高度将是 200,依此类推。

  通过以下例子,您可以更好地理解如何按比例将一个值从一个范围缩放到另一个范围:假定一个范围的跨度是从 0 到 2048,而您打算将该范围内的任意值(比如说 1024)缩放到另一个从 0 到 100 的范围内,那么您立刻就可以知道,等刻度值是 50。该缩放所遵循的三值线算法是:

  line 1---> 2048 / 1024 equals 2.

  line 2---> 100 - 0 equals 100.

  line 3---> 100 / 2 equals 50, which is the desired scaled value.

责编:豆豆技术应用

正在加载评论...