Java绘图多项式

Java绘图多项式,java,swing,unicode,superscript,Java,Swing,Unicode,Superscript,我只是想知道怎样才能画出这样的多项式X^2+2*X^4+。。。 以有效的方式,使它看起来像一个真正的。我的意思是,鲍尔斯是上台的,所以 什么意思:画公式还是画图表。看来你想要前者。您可以看看LaTex。好的,为了帮助您入门,以下是您需要在较高层次上做的事情: 扩展JPanel。这个新类(假设PolynominalPanel扩展了JPanel)将绘制您的多项式 替代paintComponent(图形g)方法 使用“Graphics”参数设置您选择的线条笔划(转换为Graphics2D并使用set

我只是想知道怎样才能画出这样的多项式X^2+2*X^4+。。。
以有效的方式,使它看起来像一个真正的。我的意思是,鲍尔斯是上台的,所以

什么意思:画公式还是画图表。看来你想要前者。您可以看看LaTex。

好的,为了帮助您入门,以下是您需要在较高层次上做的事情:

  • 扩展JPanel。这个新类(假设PolynominalPanel扩展了JPanel)将绘制您的多项式
  • 替代paintComponent(图形g)方法
  • 使用“Graphics”参数设置您选择的线条笔划(转换为Graphics2D并使用setStroke()
  • 定义一个新类,将X和Y值转换为JPanel坐标中的值。这允许您平移、镜像、旋转。。。等你所有的观点都是一致的。(因此,对于多项式中的每个X和Y,使用您选择的公式进行变换,以便在JPanel的边界内绘制多项式)。这里的要点是,您希望将多项式的一部分映射到多项式anel的边界。这是你感兴趣的多项式的一部分。这取决于多项式
  • 以离散方式对多项式进行采样。例如,您可以对每个X像素进行采样,或者可以以较低的速率进行采样以获得更好的性能。(虽然每像素应该可以)
  • 使用Graphics.drawLine()方法绘制线条。您应该使用之前采样的转换值
瞧,你完了


希望这有帮助

如果您有一个使用良好Unicode字体的环境,您可以相对轻松地创建自己的多项式
toString()
。Unicode具有以下所有功能,其中大多数功能:

因此,构造x⁻⁴²(x^-42)可通过打印
U+0078 U+207B U+2074 U+00B2
实现


请注意,用于打印此文件的字体必须定义这些字符。

Unicode方法具有相当大的吸引力,但它需要字体支持。作为另一种选择,考虑,例如

新JLabel(“x2+x4”)

啊,没错,您添加了java和swing标记。不过你在问题中没有提到他们。恐怕我不知道如何在Swing组件中显示LaTex。请使用
dvipng
并在Swing组件中显示生成的PNG文件。如果您需要API,也许可以重用一些JMathTools功能。它不允许您绘制多项式,但它提供了具有移动、平移和旋转控件的面板。它还允许您向绘图中添加线。所以基本上你仍然需要把多项式分解成几行,但这比我上面描述的要少。我以前用过它来画线,如果你只是想快速可视化,它很好用。powers is up script-这是一个隐藏的提示,你的算法的输入是某种格式化文本或html格式的多项式吗?你如何存储你的多项式?根据公认的答案,我想你想格式化公式,但从这个问题来看,我认为你想画一个函数图。以后请尽量提出更清楚的问题。我已经找过了。。但我找到了00B2和00B3。。我以为只有这一个:Dmmmm。。。你能推荐一种字体吗??因为所有的207x都不工作:(
x⁰: U+2070 
x¹: U+00B9  // Not in U207x range!
x²: U+00B2  // Not in U207x range!
x³: U+00B3  // Not in U207x range!
x⁴: U+2074
x⁵: U+2075
x⁶: U+2076
x⁷: U+2077
x⁸: U+2078
x⁹: U+2079
x⁻: U+207B
new JLabel("<html><i>x</i><sup>2</sup> + <i>x</i><sup>4</sup></html>")