有 Java 编程相关的问题?

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

java确定图中的非连续性

我在JavaiOS swift中都做了一个绘图应用程序,在这两个应用程序中,我都遇到了确定一个图是否连续的问题。为了进一步解释,我绘制图形的方法是对函数的点进行采样,并在它们之间连接线。 伪代码:

func plot(Function f)
    for i=min ; i<max ; i+=step
        plotPoint(i,f.eval(i))
        drawLine(i,f.eval(i),i+step,f.eval(i+step))

对于连续函数,这就像一个魅力,但当我遇到非连续性时,函数的非连续部分仍将通过一条线连接。示例sec(x)sec(x)

以下是paintComponent(g)github here)中的Java代码:

for(int i=0; i<ptx.size(); i++){
        if(i!=ptx.size()-1){ 
            if(showPoints){
                drawPoint(g2d, ptx.get(i),pty.get(i));
            }
            if(connectPoints && i!=ptx.size()-1){
                g2d.drawLine((int)(origin_x+(ptx.get(i)*ppp)/x_scale), (int)(origin_y-(pty.get(i)*ppp)/y_scale), 
                        (int)(origin_x+(ptx.get(i+1)*ppp)/x_scale), (int)(origin_y-(pty.get(i+1)*ppp)/y_scale));
            }
        }
    }

一切似乎都很好。我的问题是如何防止在有不连续的地方画线?没有代数解这可能吗?最后,决定是否划界的最安全、最快的方法是什么


共 (0) 个答案