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

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

Перемещение объектов по дробной координате [D7, XP]


v_a_belousov ©   (2011-01-16 22:12:00) 

Здравствуйте! Вопрос немного странный, но попробую объяснить. Требуется создать движение объекта по формуле. Проблема в том, что координаты объекта по x и y получаются с дробной частью... например

Time summary: 50
x: 0
y: 0
time: 0
x: 2121.76223927187
y: 1102.5
time: 5
x: 4243.52447854375
y: 1960
time: 10
x: 6365.28671781562
y: 2572.5
time: 15
x: 8487.0489570875
y: 2940
time: 20
x: 10608.8111963594
y: 3062.5
time: 25
x: 12730.5734356312
y: 2940
time: 30
x: 14852.3356749031
y: 2572.5
time: 35
x: 16974.097914175
y: 1960
time: 40
x: 19095.8601534469
y: 1102.5
time: 45
x: 21217.6223927187
y: 3.09263725739584E-12
time: 50

Подскажите пожалуйста каким образом реализовать движение в таком случае. Если округлять round(x) -//- round(y), то при малых значениях, когда максимальные значения x и  y меньше 1 или не больше 1,5 такое округление не подходит.


v_a_belousov   (2011-01-16 22:44:00) [1]


> сделай скаляцию

В совокупности с

> Ты думаешь, кого-то будет волновать ошибка в полпиксела?

Спасибо вам) привели мне голову в порядок) думаю доделаю нормально теперь.


DiamondShark   (2011-01-16 22:43:00) [2]


> вот такие значения у меня будут

такие значения надо масштабировать для визуализации.


v_a_belousov   (2011-01-16 22:41:00) [3]


> ты думаешь, кого-то будет волновать ошибка в полпиксела?

честно говоря думал, что да... просто замучался уже с этим движением... вот и каша в голове...


Palladin   (2011-01-16 22:41:00) [4]

хотя не, на 1000 многовато будет, на 100 достаточно


Palladin   (2011-01-16 22:40:00) [5]

ну сделай скаляцию на 1000, будет наглядно, в чем проблеммы то?


v_a_belousov   (2011-01-16 22:39:00) [6]


> я не понял рассказ про round, чем не устраивает?


К примеру вот такие значения у меня будут, что вполне часто будет встречатся. И если округлить их через round, то что получим...?

Time summary: 0.42256170628983
x: 0
y: 0
time: 0
x: 0.326530612244898
y: 0.0787442524695544
time: 0.042256170628983
x: 0.653061224489796
y: 0.139989782168097
time: 0.084512341257966
x: 0.979591836734694
y: 0.183736589095627
time: 0.126768511886949
x: 1.30612244897959
y: 0.209984673252145
time: 0.169024682515932
x: 1.63265306122449
y: 0.218734034637651
time: 0.211280853144915
x: 1.95918367346939
y: 0.209984673252145
time: 0.253537023773898
x: 2.28571428571429
y: 0.183736589095627
time: 0.295793194402881
x: 2.61224489795918
y: 0.139989782168097
time: 0.338049365031864
x: 2.93877551020408
y: 0.0787442524695545
time: 0.380305535660847
x: 3.26530612244898
y: 6.84131570838353E-17
time: 0.42256170628983


DiamondShark   (2011-01-16 22:36:00) [7]


> как же показать движение с дробной частью...

Округлить.
Ты думаешь, кого-то будет волновать ошибка в полпиксела?


Palladin   (2011-01-16 22:35:00) [8]

никак... я не понял рассказ про round, чем не устраивает?


v_a_belousov   (2011-01-16 22:34:00) [9]


> Что значит "реализовать движение"? Нарисовать на экране?
>  Ну так дробные пикселы пока ещё не научились производители
> мониторов делать.


Это я знаю, что не научились) не нарисовать, а показать скорее.


> Если "реализовать движение" -- это что-то другое, то так
> и реализовать, с дробной частью.


А чем показать это движение? Или в чем? Не могу никак додуматься.


> Требование целочисленности откуда вообще взялось?


Раз с дробной частью на экране пока нельзя...) значит надо как то округлить...  вот отсюда требование у меня в голове и взялось, потому что не могу никак понять как же показать движение с дробной частью...


DiamondShark   (2011-01-16 22:23:00) [10]


> Подскажите пожалуйста каким образом реализовать движение
> в таком случае.

Что значит "реализовать движение"? Нарисовать на экране? Ну так дробные пикселы пока ещё не научились производители мониторов делать.
Если "реализовать движение" -- это что-то другое, то так и реализовать, с дробной частью.

Требование целочисленности откуда вообще взялось?


Наверх

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