2011-04-14 5 views
3

저는 X^2 + 2 * X^4 + ... 과 같은 다항식을 어떻게 효과적으로 그릴 수 있는지 궁금 해서요. 나는 권력이 상향식이라는 것을 의미한다.자바 그리기 다항식

+0

* 능력은 최대 스크립트 * -이 알고리즘에 입력이 서식있는 텍스트 나 HTML의 어떤 종류의 polynom 즉, 숨겨진 힌트? –

+1

다항식은 어떻게 저장하나요? –

+1

수락 된 대답에서 수식 서식 지정 *을 원한다고 가정하지만, 질문에서 함수의 그래프를 그리려한다고 생각했을 것입니다. 앞으로는 더 명확한 질문을 시도하십시오. –

답변

4

좋은 유니 코드 글꼴이있는 환경이라면 비교적 쉽게 다항식 toString()을 만들 수 있습니다. 유니 코드 Superscripts and Subscripts block의 대부분 모두 Arabic numerals defined as superscript 가지고

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 인쇄가 가능할 것이다.

인쇄 할 때 사용하는 글꼴에는 이러한 문자가 정의되어 있어야합니다.

+0

그게 내가 찾고 있었던거야. D : D 매우 감사합니다. – Ahmad

+0

나는 그들을 찾아 다녔다. 그러나 나는 00B2와 00B3을 발견했다. 나는 이것이 유일한 존재라고 생각했다 : D – Ahmad

+0

mmmm ... 추천 할 수있다. 폰트 ?? 사촌 모든 207x 작동하지 않습니다 : ( – Ahmad

0

무슨 뜻입니까? 수식을 그리거나 그래프를 그리는 것입니다. 너를 원한 것 같아. LaTex를 살펴볼 수 있습니다.

+0

수식은 ... 나는 라텍스를 자바에 적용 할 수 있습니까 ??? – Ahmad

+0

아, 자바와 스윙 태그를 추가했습니다. 당신은 질문에 언급하지 않았다. Swing 구성 요소에 LaTex를 표시하는 방법을 모르겠습니다. 두렵습니다. – Puce

+0

'dvipng'을 사용하여 결과 PNG 파일을 Swing 구성 요소에 표시하십시오. –

1

좋아, 여기에 당신은 높은 수준에 무엇을해야하는지, 당신이 시작하는 데 도움이 :

  • 는 JPanel을 확장. 이 새로운 클래스 (PolynominalPanel이 JPanel을 확장한다고 말하면서) 다항식을 그릴 것입니다.
  • 오버라이드의 paintComponent (그래픽 g) 메소드
  • 사용 당신의 선택의 linestroke을 설정할 수있는 "그래픽"인수가 (Graphics2D를 캐스팅 setStroke 메소드를 사용하여()).
  • X 및 Y 값을 JPanel 좌표의 값으로 변환하는 새 클래스를 정의하십시오. 이렇게하면 통일 된 방식으로 모든 포인트를 번역하고, 대칭을 만들며 회전시킬 수 있습니다. (폴리 노미 널의 각 X와 Y에 대해이 수식을 당신이 선택한 수식으로 변형하여 폴리 노미 널이 JPanel의 경계에 그려지도록하십시오. 여기에서 요점은 다항식의 일부를 PolynominalPanel의 범위. 이것은 당신이 흥미를 갖는 다항식의 일부분입니다. 이것은 다항식에 달려 있습니다.
  • 귀하의 다항식을 개별적인 방법으로 샘플링하십시오. 예를 들어, 각 X 픽셀에 대해 샘플링 할 수도 있고 더 나은 성능을 위해 더 낮은 속도로 샘플링 할 수도 있습니다. (픽셀 당 정상이어야하지만)
  • 선을 그릴 때는 Graphics.drawLine() 메서드를 사용하십시오. 이전에 샘플링 한 변환 값을 사용해야합니다.

자, 이제 끝났어!

희망이 도움이됩니다.

+0

API를 원할 경우 일부 JMathTools 기능을 재사용 할 수 있습니다. 다항식을 그릴 수는 없지만 이동, 팬 및 회전 컨트롤이있는 패널을 제공합니다. 또한 플롯에 선을 추가 할 수 있습니다. 그래서 기본적으로 다항식을 줄 바꿈해야하지만 위에서 설명한 것보다 작습니다. 이전에 선을 그리는 데 사용한 적이 있는데, 빠른 시각화를 원한다면 잘 작동합니다. – Tovi7

2

유니 코드 방식은 상당한 매력이 있지만 글꼴을 지원해야합니다. 대안으로, How to Use HTML in Swing Components을 고려하십시오.

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

Polynomial.png

+0

또한 참조하십시오 ['HTMLFractions'] (http : // stackoverflow .com/a/7452088/230513). – trashgod