Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите как организовать структуру? 
V
    Опции темы
Elfet
  Дата 6.6.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



У меня есть абстрактный класс Polygon , наследники которого должны реализовывать метод триангуляции, разбивающий этот полигон на треугольники. Если ещё один класс (myclass) который содержит список полигонов, источников света и метод Paint(), который создаёт массив треугольников из списка полигонов, подсчитывает для них освещённость и рисует их. 

Но мне кажеться это неправильно, если источники света не двигались и полигоны тоже, то незачем каждый раз подсчитывать освещённость для них.

Я создал ещё один список в myclass, список треугольников, и при добавлении полигона, подсчитывал освещённость.

Теперь же я не могу изменять уже добавленный полигон, если я изменю его положение, поверну, то тот список треугольников не изменится в классе myclass.

Надеюсь я понятно объяснил что есть и чего хотелось бы добиться. Заранее спасибо! smile


--------------------
PM MAIL WWW Skype   Вверх
stab
Дата 6.6.2007, 21:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



храни данные по треугольникам и освещённости в самом Polygon.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Elfet
Дата 7.6.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



А если один Polygon будет принадлежать двум разным объектам myclass? smile


--------------------
PM MAIL WWW Skype   Вверх
stab
Дата 8.6.2007, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



тогда случится катаклизм. слушай, ну не знаю, придумай что-нибудь smile

тебе по сути что надо? ассоциировать данные треуголников\освещённости с полигоном. вариантов того, как это сделать, не так уж и много: 1. хранить в самом полигоне 2. через промежуточный объект-обёртку\посредник над полигоном, который создаётся для каждого полигона во время добавления его в сцену, где и храняться все данные специфичные для сцены, можешь хоть через Dictionary<> это делать. я так понимаю, что тут важнее вопрос эффективности, поэтому и предложил первый вариант.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Elfet
Дата 8.6.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



Решил делать через Dictionary<>, буду хранить ключи полигоны, значения - треугольники освещённые, мосле модифицирования полигона 
нужно будет каждый раз вызывать обновления в Dictionary<> - думаю наилучший вариант smile


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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