Текущий архив: 2006.01.29;
Скачать: CL | DM;
Вниз
РАДАР Найти похожие ветки
← →
ASMSoft (2006-01-13 15:11) [0]Блин, в мат. слабо, подскажите формулу .....
нужно рисовать линию на канве по соб. таймера
начало в X,Y окончание в.... по кругу
тоесть как на радаре, КОНЕЦ линии смещать
на пиксел по кругу. И если алгоритм с
понижением цвета для линии (как на радаре кораблевом)
нарисуете буду очень благодарен!!!!!
Вообщем нужно нарисовать расходящие круги и эта линия
крутится, круги я нарисовал а вот линию......????????
← →
Johnmen © (2006-01-13 15:52) [1]О-о-о!!!
Часики! Олегович не так давно спрашивал!
:)))
Щас ссылку поищу...
← →
Johnmen © (2006-01-13 15:54) [2]Вот
http://sql.ru/forum/actualthread.aspx?tid=248975
:)
← →
Rouse_ © (2006-01-13 16:15) [3]^)))))))))))))
← →
Cash © (2006-01-13 16:44) [4]Ага...., то есть надо нарисовать линию под любым углом
относительно некоторого центра.... хм-м-м-м... тревиальная задача!
У тебя есть 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 в процент количеству линий, и обновляй цвет.
Попробуй догадаться, как сделать так, чтоб более старые линии не
перекрывали более новые.
Еще подумай, как без постоянной перерисовки всей области убирать
следы самых старых линий.
← →
ASMSoft (2006-01-13 17:12) [5]Cash=> Спасибо!!!!!
← →
antonn © (2006-01-13 18:23) [6]и чей то вас на радары потянуло?..
уже 3 лабораторки с радарами сделал.
Вот, пара штук:
http://an-files.narod.ru/new1.rar
http://an-files.narod.ru/newAngle.rar
рекомендую первый, его скрин:
http://an-files.narod.ru/asfasefsaf.GIF
С затуханием, все как надо:))
← →
maep (2006-01-13 20:21) [7]Хе хе... Мы в свое время рульный радар забабазали....
Правда на С++ и ДиректДро:))
Алгоритмы там следующие нужны. Схема такая:
Цикл (У : 1..360 градусов)
{
Рисуем линию из центра под углом У
Меняем цвет ВСЕГО поля радара, затемняя его на N (это будет скорость затухания).
}
Затухание можно делать не каждый раз, а раз в несколько итераций. Производительность, знаете ли..
При этом, что характерно ( в отличие от картинки от antonn © ) затухать будет нетолько изображение стрелки, но и все изображенияна поле, ведь именно так работает это штуковина:))
← →
antonn © (2006-01-13 20:44) [8]maep (13.01.06 20:21) [7]
При этом, что характерно ( в отличие от картинки от antonn © ) затухать будет нетолько изображение стрелки, но и все изображенияна поле, ведь именно так работает это штуковина:))
если элементы не обновлять, то и они затухнут. Ну как на втором радаре, там вектор на цель затухает.
← →
maep (2006-01-14 06:49) [9]antonn © понял;) Просто по картинке (я только артинку смотрел) можно было сделать вывод, который сделал я.
← →
з. танька (2006-01-14 11:01) [10]
> antonn © (13.01.06 18:23) [6]
дельфины это не рыбы это животные! они тебе этого не простят..
← →
antonn © (2006-01-14 11:18) [11]з. танька (14.01.06 11:01) [10]
я знаю, что животные, но ничего другого не пришло в голову:)
← →
Fenik © (2006-01-15 03:17) [12]стая дельфинов
← →
Fenik © (2006-01-15 03:22) [13]косяк дельфимастеров :)))))))
← →
antonn © (2006-01-15 05:04) [14]Fenik © (15.01.06 3:22) [13]
косяк дельфимастеров :)))))))
:))))) я это чуть не вслух сказал после прерыдущего поста :))))
Страницы: 1 вся ветка
Текущий архив: 2006.01.29;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.053 c