Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

РАДАР [D4, D7, WinXP]


ASMSoft ©   (2006-01-13 15:11:00) 

Блин, в мат. слабо, подскажите формулу .....
нужно рисовать линию на канве по соб. таймера
начало в X,Y окончание в.... по кругу
тоесть как на радаре, КОНЕЦ линии смещать
на пиксел по кругу. И если алгоритм с
понижением цвета для линии (как на радаре кораблевом)
нарисуете буду очень благодарен!!!!!
Вообщем нужно нарисовать расходящие круги и эта линия
крутится, круги я нарисовал а вот линию......????????


antonn   (2006-01-15 05:04:00) [1]

Fenik ©   (15.01.06 3:22) [13]
косяк дельфимастеров :)))))))

:))))) я это чуть не вслух сказал после прерыдущего поста :))))


Fenik   (2006-01-15 03:22:00) [2]

косяк дельфимастеров :)))))))


Fenik   (2006-01-15 03:17:00) [3]

стая дельфинов


antonn   (2006-01-14 11:18:00) [4]

з. танька   (14.01.06 11:01) [10]
я знаю, что животные, но ничего другого не пришло в голову:)


з. танька   (2006-01-14 11:01:00) [5]


> antonn ©   (13.01.06 18:23) [6]

дельфины это не рыбы это животные! они тебе этого не простят..


maep   (2006-01-14 06:49:00) [6]

antonn © понял;) Просто по картинке (я только артинку смотрел)  можно было сделать вывод, который сделал я.


antonn   (2006-01-13 20:44:00) [7]

maep   (13.01.06 20:21) [7]
При этом, что характерно ( в отличие от картинки от antonn ©   ) затухать будет нетолько изображение стрелки, но и все изображенияна поле, ведь именно так работает это штуковина:))

если элементы не обновлять, то и они затухнут. Ну как на втором радаре, там вектор на цель затухает.


maep   (2006-01-13 20:21:00) [8]

Хе хе... Мы в свое время рульный радар забабазали....
Правда на С++ и ДиректДро:))

Алгоритмы там следующие нужны. Схема такая:
Цикл (У : 1..360 градусов)
{
Рисуем линию из центра под углом У
Меняем цвет  ВСЕГО поля радара, затемняя его на N (это будет скорость затухания).
}

Затухание можно делать не каждый раз, а раз в  несколько итераций. Производительность, знаете ли..

При этом, что характерно ( в отличие от картинки от antonn ©   ) затухать будет нетолько изображение стрелки, но и все изображенияна поле, ведь именно так работает это штуковина:))


antonn   (2006-01-13 18:23:00) [9]

и чей то вас на радары потянуло?..
уже 3 лабораторки с радарами сделал.
Вот, пара штук:
http://an-files.narod.ru/new1.rar
http://an-files.narod.ru/newAngle.rar

рекомендую первый, его скрин:
http://an-files.narod.ru/asfasefsaf.GIF
С затуханием, все как надо:))


ASMSoft   (2006-01-13 17:12:00) [10]

Cash=> Спасибо!!!!!


Cash   (2006-01-13 16:44:00) [11]

Ага...., то есть надо нарисовать линию под любым углом
относительно некоторого центра.... хм-м-м-м... тревиальная задача!

У тебя есть X и Y точки центра.
И у тебя есть X и Y точки, которую смещать надо.
И между этими точками потом будет линия, так?
А еще у тебя есть Rotation, угол вращения точки. (если нет, заведи)
Можно узнать смещение dX и dY от точки до центра.
(это я не покажу, потаму как это просто)
Далее, собственно эта задача:

 pX := (dx*cos(DegToRad(Rotation)))+(dy*sin(DegToRad(Rotation)));
 pY := (dx*sin(DegToRad(Rotation)))-(dy*cos(DegToRad(Rotation)));

pX и pY - это новые координаты точки, которую надо смещать.

Для затухания цвета нужно цвет разложить на RGB, сделай это с
помощью записи с вариантами:

TRGBColor = packed record
 case boolean of
   false: (Color: TColor);
   true: (Red,Green,Blue,Contr: byte);
end;

Contr всегда держи в 0, в Color запиши цвет самой яркой линии.
А при отрисовке более старых линий (3 или 4 линии) убавляй составляющие
Red, Green и Blue в процент количеству линий, и обновляй цвет.

Попробуй догадаться, как сделать так, чтоб более старые линии не
перекрывали более новые.

Еще подумай, как без постоянной перерисовки всей области убирать
следы самых старых линий.


Rouse_   (2006-01-13 16:15:00) [12]

^)))))))))))))


Johnmen   (2006-01-13 15:54:00) [13]

Вот
http://sql.ru/forum/actualthread.aspx?tid=248975
:)


Johnmen   (2006-01-13 15:52:00) [14]

О-о-о!!!
Часики! Олегович не так давно спрашивал!
:)))
Щас ссылку поищу...


Наверх

Титульная страница Поиск, карта сайта Написать письмо