Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2010, 21:51   #1
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию Проблема с канвасом

Нужно отчертить объект в изометрии БЫСТРО. Код уже есть, выкладываеть сейчас не буду но если нужно, то выложу позже. В общих чертах - обычный шейп, кинутый на форму преломляется в искаженные координаты изометрии и выводится на вторую форму. Получается что то вроде ромба(если шейп квалратный). Если я начинаю for - to - do несколько раз на этот ромб с каждым циклом делая ромб выше на 1 пкс, то получается изометрия с высотой. Для прорисовки использую canvas.lineto, но как показал диспетчер задач - это очень затратно, при десяти шейпах процессор нагружен на 30 процентов. Пробовал полигонами (canvas.ploygon(array of tpoint)), но те мало того, что мерцают, так ещё и прорисовываются криво (очень долгу бьюсь над раскидкой координат - безрезультно). Они ещё и серые, а цвет мне нужно задавать самому. doublebuffered насчет мерцания не помогает. Есть способы отрисовать шейп в изометрии без больших затрат памяти?
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 15.02.2010, 22:14   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

может стоит присмотрется хотя бы к OpenGL?
там 3D
и очень легко вращать все
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.02.2010, 17:26   #3
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

OpenGL...
я ето уже слышал. хм. его объявляют просто, как OpenGL?
И как с ним вообще обращаться? Это что? набор функций?
зы: ССЫЛКИ НА УЧЕБНИКИ ДЛЯ НОВИЧКОВ НЕ ПИХАТЬ!!
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 16.02.2010, 17:45   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

cудя по вопросу...
Цитата:
я ето уже слышал. хм. его объявляют просто, как OpenGL?
и комментарию...
Цитата:
зы: ССЫЛКИ НА УЧЕБНИКИ ДЛЯ НОВИЧКОВ НЕ ПИХАТЬ
вот как раз >>> ссылки <<< на литературу для разного уровня.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 16.02.2010, 18:12   #5
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

тааак... половина ссылок битые...ну ладно, потом досмотрю, мож и есть целые
а вообще да, это то, что нужно
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 16.02.2010, 19:47   #6
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Если не хотите юзать OpenGL, можете попоробовать все ваши рисовалки проводить с битмапом, а после просто копировать в ваш кавнвас.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 16.02.2010, 20:39   #7
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

эх...сказал бы кто нибудь "это же просто - polygon(p1,p2,p3,p4,color)"...
просто opengl юзать пока нет возможности.
и ещё: на канву изображение выводить надо 25 раз в секунду! поэтому у мя виснет!
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 16.02.2010, 21:09   #8
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

2 saggy - потрать день или два и почитай книгу "OpenGL графика в проектах Delphi" - там очень хорошо все проясняется, начиная с самого простого. Лично я доволен книгой. Думаю от прочтения ее - ты только выиграешь.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 16.02.2010, 21:17   #9
saggy
Форумчанин
 
Регистрация: 08.10.2009
Сообщений: 112
По умолчанию

после долгого юзанья данной мне ссылки всё таки нашёл одну из десятков ссылку, которая действительно на русском поясняет что и как.
пробую вкуривать =)
thanks =)
а "OpenGL графика в проектах Delphi" - учту. спасибо.
procedure life; for years := 1 to 11 do gotoschool(normal); woman := TMan.add; childrens.add(TMans); problems.add(fuck); woman.destroy; END.
saggy вне форума Ответить с цитированием
Старый 16.02.2010, 21:32   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

в той теме - "Графическая библиотека OpenGL" >>> ТЫРК
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37