Java Applet图形调整大小

时间:2011-03-03 19:00:36

标签: java math applet

所以我有一个任务,需要两个输入,男性和女性,并输出matingPairs,两者的产物。

除此之外,指令要求使用其中一个变量绘制形状。

我决定为每个值画圆圈。

我首先绘制交配台,然后是原始的较大的雄性和雌性圈,较大的交配台圈。

我遇到的问题显然是代表applet中的图形。如果数字高于100,则图形对于小程序来说太大了。

我正在寻找一种方法,基本上让交配的圆圈始终填充小程序,然后让雄性和雌性动态调整,使它们的大小相对于matingPairs圆形大小进行缩放。我正在使用JApplet。

非常感谢您提供任何指导。我真的在寻找一个解决方案,而不是朝着正确的方向发展。

2 个答案:

答案 0 :(得分:1)

那么,您是否需要知道如何获得applets画布的大小或如何相应地缩放男/女圈?

编辑:

绘制圆圈以填充600x600区域应该很容易。请记住,在调用drawOval()/ fillOval()或类似方法时,您经常指定圆的左上角以及宽度和高度(即直径)。

接下来的问题是:什么代表输入(男性/女性)和输出(对)的大小,圆圈的面积或半径?无论是什么,都应该很容易计算输入/输出比率,然后将输出圆的固定大小乘以它,以获得输入圆的大小。

答案 1 :(得分:1)

您可能应该提供更多有关如何在Graphics对象中绘制圆圈的说明 这个想法是管理两个不同尺度的二维空间;第一个是输入数据,第二个表示绘制此类数据的可用区域。第一个可以包含任何位置的数据,例如(5, 5)(0.2, 0.3)(1200, 3400)。关键是使用适当的变换将第一个空间的原始坐标映射到第二个空间:scale + translation 必须在开始绘制之前计算此变换,并应用于绘制的任何点 我们的想法是将输入数据所在的矩形映射到图形中的可用区域。如果图形区域为200x200像素且数据可以从(0, 0)(400, 400),则只需将要绘制的点的坐标除以2即可。如果原始数据未以(0, 0)为中心,请使用翻译。