Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стандартная система координат при отрисовки, Массив точек на jPanel 
:(
    Опции темы
Codemancer
Дата 28.11.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 25.11.2008

Репутация: нет
Всего: нет



Простите за глупый вопрос. Проблема в следующем. Грубо говоря, есть массив с точками, которые определяют начало и конец линий. Лини надо построить, например, на jPanel.  
Код

           ...
           Graphics g = jPanel1.getGraphics();
           ...
           public void Draw(Graphics g){
            g.drawLine(getX1(), getY1(), getX2(), getY2());
    }

Все работает, только начало координат в jPanel по умолчанию находится в левом верхнем углу. Если визуально изобразить, то получается так
--------->Ось X
|
|
|
\/
ось Y

Как можно поменять на привычную всем в математике и самому задать начало координат?
PM MAIL ICQ   Вверх
Connie
Дата 29.11.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



yReal = g.getSize().height - yCalculated

еще нужно добавить проверки на выход yReal за пределы
PM MAIL WWW   Вверх
Vurn
Дата 29.11.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.5.2007

Репутация: нет
Всего: 3



НЕПРАВИЛЬНО рисовать на JPanel. Для рисования есть класс Image и его производные (т.е. BufferedImage), а для отображения - JLabel.
PM MAIL   Вверх
Vurn
Дата 21.12.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.5.2007

Репутация: нет
Всего: 3



У любого Image можно получить Graphics2D, а ему установить аффинное преобразование. Этим Афинным преоброзованием можно получить что угодно, в том числе и новую систему координат. В случае автора, это будет выглядеть так:
Код

import javax.swing.*;
import java.awt.image.BufferedImage;
import java.awt.*;
import java.awt.geom.AffineTransform;

public class Desk implements Runnable {
    JFrame jf ;

    public Desk() {
        jf = new JFrame();
        BufferedImage bi = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2d = (Graphics2D)bi.getGraphics();
        g2d.transform(new AffineTransform(1,0,0,-1,0,300));
        g2d.drawLine(0,0, 400, 300);
        jf.add(new JLabel(new ImageIcon(bi)));
        jf.pack();
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true); 
    }

    @Override
    public void run() {

    }

    public static void main(String[] args) {
        new Desk().run();
    }
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.