Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将随机数转换为XY坐标以绘制图形_Java_Graphing - Fatal编程技术网

Java 将随机数转换为XY坐标以绘制图形

Java 将随机数转换为XY坐标以绘制图形,java,graphing,Java,Graphing,我的教授给我们布置了一项任务,用线性和二进制算法测试运行时和搜索大小的差异,数据将被绘制成图表 我让搜索方法将运行时和数组大小作为点放在ArrayList中,然后将其发送到GraphResults类进行打印。之前我需要将这些数据点转换为xy坐标。搜索大小是x轴,运行时是y轴 由于搜索大小固定为128的倍数,并且只有8个大小,因此我使用switch来计算x值,但我正在寻找一种更有效的方法将运行时转换为坐标 现在,我将嵌套条件语句与5一起使用,如下所示: if (y<=1000) {

我的教授给我们布置了一项任务,用线性和二进制算法测试运行时和搜索大小的差异,数据将被绘制成图表

我让搜索方法将运行时和数组大小作为点放在ArrayList中,然后将其发送到GraphResults类进行打印。之前我需要将这些数据点转换为xy坐标。搜索大小是x轴,运行时是y轴

由于搜索大小固定为128的倍数,并且只有8个大小,因此我使用switch来计算x值,但我正在寻找一种更有效的方法将运行时转换为坐标

现在,我将嵌套条件语句与5一起使用,如下所示:

if (y<=1000) {
    if (y<= 500) { 
        if (y<= 250) {
            newy= yaxis-32; }//equals to 250ms category
        else {
            newy= yaxis-(32*2); }//500ms category
   } 
else if (y<=750) {
    newy= yaxis-(32*3);} //750ms category
else {
    newy= yaxis-(32*4);} //1000ms category
} //end of the 1000ms tests
newy = yaxis - 32 * ((y-1)/250 + 1);

如果(ynewy=yaxis-32*((y/250)%8);?
newy=yaxis-32*((y/250)%8)怎么样?

if (y<=1000) {
    if (y<= 500) { 
        if (y<= 250) {
            newy= yaxis-32; }//equals to 250ms category
        else {
            newy= yaxis-(32*2); }//500ms category
   } 
else if (y<=750) {
    newy= yaxis-(32*3);} //750ms category
else {
    newy= yaxis-(32*4);} //1000ms category
} //end of the 1000ms tests
newy = yaxis - 32 * ((y-1)/250 + 1);

这样,您就可以计算乘数,而不是手动选择它。

我会将您的代码重新格式化为类似以下内容:

if (y<=1000) {
    if (y<= 500) { 
        if (y<= 250) {
            newy= yaxis-32; }//equals to 250ms category
        else {
            newy= yaxis-(32*2); }//500ms category
   } 
else if (y<=750) {
    newy= yaxis-(32*3);} //750ms category
else {
    newy= yaxis-(32*4);} //1000ms category
} //end of the 1000ms tests
newy = yaxis - 32 * ((y-1)/250 + 1);

这样,您就可以计算乘数,而不是手动选择它。

当您试图确定测量范围时,可以将量除以范围大小,然后计算要在图表中显示的数字

顺便说一句,在代码中,如果值为
y ymax-32,则出现逻辑错误

另外,如果要将值与不均匀范围进行比较,还可以执行类似数组查找的操作(伪代码):

int[]范围=新的int{50500500050000};
对于(int n=0;nranges[n];n++){
}
int范围=n;
int newy=yaxis-范围*32;

请注意,超出范围索引充当为大于数组中最大值的值找到的范围。

当您试图确定测量范围时,可以将量除以范围大小,然后计算要在图形中显示的数字

顺便说一句,在代码中,如果值为
y ymax-32,则出现逻辑错误

另外,如果要将值与不均匀范围进行比较,还可以执行类似数组查找的操作(伪代码):

int[]范围=新的int{50500500050000};
对于(int n=0;nranges[n];n++){
}
int范围=n;
int newy=yaxis-范围*32;

请注意,超出范围索引充当为大于数组中最大值的值找到的范围。

对于y<250,它将产生newy=yaxis。这看起来会起作用,并且需要进行一些测试。谢谢对于y<250,它将产生newy=yaxis。这看起来是可行的,需要进行一些测试。谢谢这真的是对效率观点的冲击吗?既然有,我不确定我是否明白你在问什么。与嵌套的if语句相比,这条线的好处在于,它可以扩展到y轴上的任意数量的点,并且计算所需的周期更少。从效率的角度来看,这真的是一个打击吗?既然有,我不确定我是否明白你在问什么。与嵌套的if语句相比,这条线的好处在于它可以扩展到y轴上的任意数量的点,并且计算周期更少。我使用的图形库是随课堂教材提供的。它与海龟对象非常相似,只是更为用户友好,它在屏幕上显示光标的x-y坐标。非常有助于找出放置物品的位置。唯一的缺点是(0,0)坐标在窗口的左上角,所以这就是为什么这些值看起来是倾斜的。我使用的图形库是随教材提供的。它与海龟对象非常相似,只是更为用户友好,它在屏幕上显示光标的x-y坐标。非常有助于找出放置物品的位置。唯一的缺点是(0,0)坐标位于窗口的左上角,因此这些值看起来是倾斜的