![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ещё раз о столкновении [Delphi, Windows]
Xandr © (2006-02-25 20:31:00)суть:
есть непроходимые тайлы их нужно заменить линиями.
есть существа, их нужно заменить кругами.
вот в чём проблема: как лучше организовать замену, и САМОЕ главное - как проверить пересеклись ли окружность и кривая?
ЗЫ к математике не отправлять, уравнения прямых и окружностей я знаю, и умею решать системы уравнений. (правда на бумаге)
Xandr (2006-02-26 18:39:00) [21]
> 1) намудрил ты там что-то с тригонометрией %) Я даже разбираться
> не стал...
ну это всё ещё из школы...
а вообще я такие вот в точности формулы видел во многих примерах...
а идея кстати прикольная (про длинну вектора и последующем делении на неё составляющих ускорения)...
XProger (2006-02-26 18:33:00) [22]Xandr,
px, py : Single;
...
px := px + pdx;
py := py + pdy;
А вот при отрисовке - передавай trunc(px) и trunc(py)
XProger (2006-02-26 18:31:00) [23]Xandr,
1) намудрил ты там что-то с тригонометрией %) Я даже разбираться не стал...
2) Как видишь...
Xandr (2006-02-26 18:30:00) [24]
> Вообще, у тебя там жуткие погрешности возникают из-за
> px:=trunc(px+pdx);
> py:=trunc(py+pdy);
я знаю!
как без этого?
Xandr (2006-02-26 18:29:00) [25]спасибо!
вот теперь вопрос:
1. почему то, что было не работало?
2. тебе не западло отвечать всяким неучам на их тупые вопросы?
ЗЫ последний вопрос - ко Всем!
XProger (2006-02-26 18:20:00) [26]Вообще, у тебя там жуткие погрешности возникают из-за
px:=trunc(px+pdx);
py:=trunc(py+pdy);
XProger (2006-02-26 18:14:00) [27]:)
procedure TForm1.DXDraw1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
a: real;
begin
mx:=x;
my:=y;
if not edit then
begin
a := sqrt(sqr(px - mx) + sqr(py - my));
if a <> 0 then
begin
pdx := -(px - mx)/a * 3;
pdy := -(py - my)/a * 3;
end else
begin
pdx := 0;
pdy := 0;
end;
end;
end;
Xandr (2006-02-26 17:24:00) [28]XProger Я ЗНАЮ ТЫ ТУТ!
ПОМОГИИИИИИИИ!
Xandr (2006-02-26 17:07:00) [29]webfile.ru/830792 (~4 Кило)
немного офтоп...
блин начал делать, а тут такая фигня:
круг должен двигаться в то место, где нажата мышка, а на самом деле... :)
там 2 формулы у меня, ни с одной не получается...
вобщем посмотрите, плиз если не трудно.
Xandr (2006-02-26 05:04:00) [30]сенкс!
XProger (2006-02-25 21:35:00) [31]Найди расстояние от центра окружности до прямой, если меньше радиуса окружности - пересечение.
http://algolist.manual.ru/maths/geom/distance/pointline.php
Xandr (2006-02-25 21:30:00) [32]ну в этом то и трабл...
скорее всего как такая изогнутая линия с неравномерными по всей её длинне фрустациями :D
на самом деле я опечатался.
нужно проверить пересечение ПРЯМОЙ и окружности...
но думаю вопрос по представлению не отпадает?
Я НЕ ЗНАЮ!
вы что посоветуете?
можете говорить всё что угодно, проэкт только начался, и находится на стадии рисования тайлов и обдумывания глобальных принципов взаимодействия.
XProger (2006-02-25 20:45:00) [33]Как представлена кривая?