3

X ^ 2 + 2 * X ^ 4 + ...のような多項式を効率的に描画して、実際の多項式のように見せることができるのではないかと思っています。つまり、パワーはアップスクリプトなどです。

4

4 に答える 4

4

優れたUnicodeフォントを使用する環境がある場合は、独自の多項式を比較的簡単に作成できますtoString()。Unicodeには、すべて上付き文字として定義されたアラビア数字があり、それらのほとんどは上付き文字と下付き文字ブロックにあります。

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

したがって、x⁻⁴²(x ^ -42)を作成するには、を印刷しU+0078 U+207B U+2074 U+00B2ます。

これを印刷するために使用するフォントには、これらの文字が定義されている必要があることに注意してください。

于 2011-04-14T10:58:22.910 に答える
2

Unicodeアプローチにはかなりの魅力がありますが、フォントのサポートが必要です。別の方法として、 SwingコンポーネントでHTMLを使用する方法を検討してください。

new JLabel("<html><i>x</i><sup>2</sup> + <i>x</i><sup>4</sup></html>")

Polynomial.png

于 2011-04-14T13:01:54.093 に答える
1

さて、あなたが始めるのを助けるために、あなたが高レベルでする必要があることはここにあります:

  • JPanelを拡張します。この新しいクラス(PolynominalPanelがJPanelを拡張するとします)は、多項式を描画します。
  • paintComponent(Graphics g)メソッドをオーバーライドします
  • 「Graphics」引数を使用して、選択したラインストロークを設定します(Graphics2Dにキャストし、setStroke()を使用します)。
  • X値とY値をJPanel座標の値に変換する新しいクラスを定義します。これにより、すべてのポイントを均一に平行移動、ミラーリング、回転などすることができます。(したがって、多項式のXとYごとに、選択した式でこれを変換して、多項式がJPanelの境界に描画されるようにします)ここでのポイントは、多項式の一部をPolynominalPanelの境界。これは、関心のある多項式の一部です。これは、多項式によって異なります。
  • 離散的な方法で多項式をサンプリングします。たとえば、Xピクセルごとにサンプリングしたり、パフォーマンスを向上させるために低いレートでサンプリングしたりできます。(ピクセルごとに問題ないはずですが)
  • Graphics.drawLine()メソッドを使用して線を描画します。以前にサンプリングした変換済みの値を使用する必要があります。

そして出来上がり、これで完了です。

お役に立てれば!

于 2011-04-14T10:18:06.500 に答える
0

どういう意味ですか:数式を描くか、グラフを描くか。前者が欲しいようです。あなたはLaTexを見ることができます。

于 2011-04-14T10:12:01.927 に答える