Java - рисование полиномов - PullRequest
       38

Java - рисование полиномов

3 голосов
/ 14 апреля 2011

Мне просто интересно, как я могу нарисовать такой многочлен X ^ 2 + 2 * X ^ 4 + ... и сделать его похожим на настоящий. Я имею в виду полномочия, а не так.

Ответы [ 4 ]

4 голосов
/ 14 апреля 2011

Если у вас есть среда с хорошим шрифтом Unicode, вы можете относительно легко создать свой собственный полином toString().В Юникоде все арабские цифры определены как верхний индекс , большинство из них в блоке Надстрочные и нижние индексы :

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.

Обратите внимание, что шрифт, который вы используете для печати этого, должен иметь определенные символы.

2 голосов
/ 14 апреля 2011

Подход Unicode имеет значительную привлекательность, но требует поддержки шрифтов.В качестве альтернативы рассмотрим Как использовать HTML в компонентах Swing , например,

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

Polynomial.png

1 голос
/ 14 апреля 2011

Хорошо, чтобы помочь вам начать, вот что вам нужно сделать на высоком уровне:

  • Расширить JPanel. Этот новый класс (скажем, PolynominalPanel расширяет JPanel) будет рисовать ваш полином.
  • Переопределить метод paintComponent (Graphics g)
  • Используйте аргумент "Графика", чтобы установить линейный штрих по вашему выбору (приведите к Graphics2D и используйте setStroke ()).
  • Определите новый класс, который преобразует значения X и Y в значения в ваших координатах JPanel. Это позволяет вам переводить, отражать, вращать ... и т. Д. ... все ваши точки в единообразном виде. (Таким образом, для каждого X и Y в вашем полиноме преобразуйте это с формулой по вашему выбору, чтобы полином отображался в границах JPanel). Суть в том, что вы хотите отобразить часть вашего полинома на границы вашей полиноминальной панели. Это та часть полинома, которая вас интересует. Это зависит от полинома.
  • Образец вашего полинома дискретным образом. Например, вы можете сэмплировать его для каждого X-пикселя или, возможно, вы можете сэмплировать его с более низкой скоростью для повышения производительности. (Хотя на пиксель должно быть хорошо)
  • Используйте метод Graphics.drawLine () для рисования линий. Вы должны использовать преобразованные значения, которые вы выбрали ранее.

И вуаля, все готово!

Надеюсь, это поможет!

0 голосов
/ 14 апреля 2011

Что вы имеете в виду: рисование формулы или рисование графика.Кажется, ты хочешь первое.Вы могли бы взглянуть на LaTex.

...