LINUX.ORG.RU

java2D & point


0

0

привет всем, вот вопрос. что то я никак не могу найти как мне отрисовать одну точку, в java2d.

пробовал так:

import java.awt.*; import java.awt.geom.Point2D; import javax.swing.*; class First2DDemo extends JPanel { @Override protected void paintComponent( Graphics g ) { Graphics2D g2 = (Graphics2D) g; g2.draw(new Point2D.Double(20,15));

} public static void main( String[] args ) { JFrame f = new JFrame(); f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); f.setSize( 200, 120 ); f.add( new First2DDemo() ); f.setVisible( true ); }

}

а javac мне вот что выдаёт: javac First2DDemo.java First2DDemo.java:15: draw(java.awt.Shape) in java.awt.Graphics2D cannot be applied to (java.awt.geom.Point2D.Double) g2.draw(new Point2D.Double(20,15)); ^ 1 error

посмотрел в Java2D API и ненашёл ничего об отрисовке точек. неужели мне точку рисовать Line2D.

вот ещё один вопрос: обьясните мне как координата может быть float/double ведь если посмотреть на пиксели то их никак не разделить, ну не может ведь 1/2 пикселя.

пасиб заранее.

★★

import java.awt.*;
import java.awt.geom.Point2D;
import javax.swing.*;
class First2DDemo extends JPanel {
@Override
protected void paintComponent( Graphics g ) {
Graphics2D g2 = (Graphics2D) g; g2.draw(new Point2D.Double(20,15));
}
public static void main( String[] args ) {
JFrame f = new JFrame(); f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.setSize( 200, 120 );
f.add( new First2DDemo() );
f.setVisible( true );
}
}

сорри всё время забываю о форматирований.

djung ★★
() автор топика

> что то я никак не могу найти как мне отрисовать одну точку, в java2d
Для Graphics(2D) - g.drawLine(x, y, x, y);
:-)

> вот ещё один вопрос: обьясните мне как координата может быть float/double ведь если посмотреть на пиксели то их никак не разделить, ну не может ведь 1/2 пикселя.

Может. См. в сторону subpixel antialiasing

anonymous
()
Ответ на: комментарий от anonymous

пасиба за ответ, никак мне в голову не хводит как так нет методы чтоб отрисовать самую примитиву, точку? ужас.

попробовал line2d.double(10,10,10,10); отрисовывает точку, вот тока вопрос это будет у меня пиксель или нет?

djung ★★
() автор топика
Ответ на: комментарий от djung

ой и ещё один вопрос появился, как мне теперь убить иммено эту точку, ну что то ввиде destroy()?

djung ★★
() автор топика
Ответ на: комментарий от djung

если так уж требутеся рисовать попиксельно, то лучше делать это в буфер. :-)

например, в BufferedImage.

anonymous
()
Ответ на: комментарий от anonymous

может ктонить подкинет нормальной документаций на эту тему.

djung ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.