![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.11.2011
Сообщений: 33
|
![]()
Здравствуйте, необходима помощь в построении диметрической проекции фигуры вместо изометрической. Что исправить в коде (Pascal). Заранее благодарю всех откликнувшихся!
Код:
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 18.11.2011
Сообщений: 33
|
![]()
Все еще нуждаюсь в помощи....
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Может, дадите определение диметрической проекции?
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 18.11.2011
Сообщений: 33
|
![]()
Ось Z' расположена вертикально, а оси X' и Y' образуют с горизонтальной линией углы 7°10' и 41°25'.
Коэффициент искажения по оси Y' равен 0,47, а по осям X' и Z' 0,94.
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Я напряг свои телепатические способности и Голос подсказал мне, что изометрическая проекция является плоской.
Голос был прав? |
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 18.11.2011
Сообщений: 33
|
![]() Цитата:
Естественно, интересует, как записать при диметрии угол поворота вокруг оси: Код:
Код:
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.
Последний раз редактировалось Viwwna; 19.05.2012 в 19:42. |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 18.11.2011
Сообщений: 33
|
![]()
Подготовила код, который завтра понесу на проверку
![]() Код:
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Честно говоря:
1. Так и не понял, что такое диметрическая проекция. 2. Запутался в Вашем коде. Во-первых, у меня такое ощущение, что Вы нумеруете координаты в посте №6 с 0 до 2, а в посте №7 - с 1 до 3. Опять же, нигде не поясняеие, какой индекс к какой координате относится. Чтобы не путаться с этим, я рекомендую определить тип вестора, например, так: Код:
Во-вторых, мне кажется лучше определить матричные преобразования и пользоваться ими. Вы один раз проверите, что они работают правильно и не нужно потом будет каждое действие расписываьт через тригонометрию и проверять, не ошиблись ли Вы где-то. В третьих, не уверен, что правильно понял, как Вы вычисляете видимость. По идее она должна определяться по результатам ВСЕХ геометрических преобразований, мне же кажется, что преобразование проекции там не учитывется. Значит, Вы определяете видимость не из той точки. Я не уверен, но проверьте это. И почему Вы так преобразуете вектор в скаляр, я тоже не понял. Обычно достаточно проверить знак одной координаты, Вы же вычисляете какую-то комбинацию всех. В общем, после всех необходимых поворотов плоская проекция заключается дишь в том, чобы обнулить (отбросить) одну координату. Поэтому я бы рекомендовал вычислять hex2 с тремя координатами, по этим координатам определять видимость и уже при построении граней пользоваться только двумя из них. PS. Борланд Паскаль у меня некстановлен, так что посмотреть, как работает Ваш код не могу. |
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 18.11.2011
Сообщений: 33
|
![]() Цитата:
немного изменила ( в частности неточности отображения видимости): Код:
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.
|
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Вы описали третью координату hex2, но не стали ее вычислять.
Т.к. мне неизвестен принцип, по которому Вы заполняете grani, не могу сказать, правильно ли Вы делаете. По поводу осей - изначально они (N, 0, 0), (0, N, 0) и (0, 0, N), где N - желаемая длина, а потом к ним применяются те же преобразования. Были бы они матричными - было бы намного проще. Да, еще, т.к. я, повторюсь, не могу у себя запустить Ваш код, порекомендую один отладочный прием: повартируйте углы, которые у Вас объявлены как константы, в частности, посмотрите, как программа будет вести себя, если 1 или 2 или 3 угла будут отрицательными. Последний раз редактировалось s-andriano; 20.05.2012 в 19:33. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проекция точки на прямую | AnDre_rus | Общие вопросы C/C++ | 4 | 25.08.2013 17:33 |
Проекция буквы T на ось X(Delphi) | netiv | Помощь студентам | 6 | 15.05.2012 18:51 |
Проекция Кавалье | newStudent | Помощь студентам | 0 | 28.11.2010 19:32 |
Проекция Rectangle | _-Re@l-_ | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 09.09.2010 11:13 |
Проекция файла и запись/чтение объектов класса в C++ | sd13 | Помощь студентам | 26 | 25.05.2008 12:05 |