Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.03.2010, 15:38
  № 1  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
По умолчанию Как правильно спроектировать класс точки для графика?

Пишу курсач. В нем на координатную ось выводятся точки. Чтобы потом не плакать от неудачного проектирования класса для этих точек, решил сразу посоветоваться по двум вопросам:
Вопрос 1.
Точку лучше отрисовывать в graphics самого класса
Код AS3:
private function drawPoint(color:uint,radius:Number):void {
//set
graphics.drawCircle(0,0,radius);
}
, или создать в нем отдельный объект
Код AS3:
private function drawPoint(color:uint,radius:Number):void {
//set
var circle:Shape = new Shape();
circle.graphics.drawCircle(0,0,radius);
addChild(circle);
}
?

Вопрос 2.
При наведении на точку, рядом с ней появляется текстовое поле, с численным указанием ее значения. Это поле, лучше отображаться в точке, или на координатной оси (объекте в котором отображается точка). Так же, при наведении на точку, от нее идут пунктирные линии до осей абсцисс и ординат. Эти линии, по идеи, нужно отображать там же, где и текстовое поле с численными значениями? (они появляются при наведении и исчезают при снятии курсора).

Мои рассуждения по этому поводу:
если отображать в самой точке, то можно один раз построить, а потом просто скрывать/отображать. Если точно так же делать в родителе, то нужно создавать массив, и перебирать его каждый раз в поисках нужной точки, либо строить заново.
с другой стороны, если запихать в точку вывод текстового поля и пунктиров к оси, то она же уже будет чем то смешанным между точкой и системой работы с ней. Правда, можно создать класс точки, потом расширить его, до какого-нибудь ClassPointView и уже в него запихнуть вывод текста и линий.
Как быть?

Старый 14.03.2010, 17:41
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
1. Без разницы
2. Выводом подсказок и пунктирных линий должен заниматься родитель точек. Нет ничего страшного в том, чтобы создавать подсказку каждый раз при наведении мыши - все-таки по компьютерным меркам юзер не так уж и быстро этой мышью двигает между точками)
__________________
тонкий тролль, осеянный благодатью

Старый 14.03.2010, 22:22
  № 3  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Спасибо, GAIKER. С отрисовкой в родителе получается гораздо лучше. Тем более, глупо хранить все линии и подсказки, когда в один момент времени нужна максимум только одна из них.

Старый 15.03.2010, 16:27
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 4  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Отрисовка в отдельный объект может пригодится, если захотите сделать функционал по изменению масштаба графика по любым осям...

И потом, вам же надо как-то определять наведение на эту точку?... хранить координаты и сравнивать с координатами мыши с допусками? ... Или же рисовать все в графикс родителя, и добавлять невидимые спрайты поверх для интреактива с мышью? ... Имхо, лучше отрисовывать все в своем объекте, например, GraphPoint, унаследованным от Sprite (чтобы мышка работала), в котором можно хранить функционал для работы с точкой... Ну а линии, соединяющие точки, рисовать в родителе, там и перерисовать не долго будет при изменениях в положении точек.


Последний раз редактировалось Hidest; 15.03.2010 в 16:35.
Старый 15.03.2010, 22:59
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Лучше создать модель той штуки, которую собираетесь визуализировать. А уж ту или иную визуализацию накатывать на эту модель.
Пример. Есть у меня массив из Point, описывающих график y = sin(x). Храня внутреннее состояние в Модели, мы легко его можем модифицировать представление, например, растянув её по оси ординат. Можно создать несколько представлений по одной модели. Хотите sin(x) в изометрии? Пожалуйте.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 17.03.2010, 02:48
  № 6  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Спасибо.
PS
To Hedist: вобщем-то у меня сам класс точки является спрайтом. Ничего, кроме точки в нем не отображается. Дополнительно хранятся только значения различных величин. Поэтому даже не знаю, стоит ли создавать еще один спрайт..

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:51.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.