有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中绘制不连续图形时的绘图错误?

我正在尝试使用Java创建一个图形计算器小程序。我在绘制包含不连续性的图形时遇到困难,例如孔和渐近线。以下是我到目前为止对渐近线图的代码:

for (int i = 1; i < size; i++) { 
    x1 = round((startX + ((graphdata.get(i - 1)).getX()) * scale)); 
    y1 = round((startY - ((graphdata.get(i - 1)).getY()) * scale)); 
    x2 = round((startX + ((graphdata.get(i)).getX()) * scale)); 
    y2 = round((startY - ((graphdata.get(i)).getY()) * scale)); 
    for (int j = 0; j < VertAsympArray.size(); j++) 
        { 
            if(Math.abs((round(graphdata.get(i).getX(),3)) - (VertAsympArray.get(j))) > epsilon && Math.abs((round(graphdata.get(i-1).getX(),3)) - (VertAsympArray.get(j))) > epsilon ){ 
                System.out.println("Drawing points : x1 : " + round(graphdata.get(i-1).getX(),3) + ", y1 :" + round(graphdata.get(i-1).getY(),3) + "; x2 : " + round(graphdata.get(i).getX(),3) + ", y2 : " + round(graphdata.get(i).getY(),3) ); 
                g.drawLine(x1, y1, x2, y2); 
            } 
            else 
                System.out.println("VertAsympArray : " + VertAsympArray.get(j) + "; Function x value : " + round(graphdata.get(i).getX(),3)); 
        }  
}

尽管我删除了用户输入未定义函数的值,但出于某种原因,绘制了一条直线,将图表上的最后一个最低点连接到下一个最高点。以下是x=6渐近线附近((x-1)(x+3))/((x+1)(x-6))的图:

红色直线不是我画的渐近线,它是函数的一部分,这是错误的。我如何摆脱它/有更好的方法绘制渐近线图吗


共 (0) 个答案