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) 个答案