![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| S.A.G. |
|
||||||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Например есть две точки (x1;y1), (x2;y2). Извесно что координаты точки средины отрезка будут такими:
Однако величины для x3 и y3 скорее всего будут нецелыми. Что с ними делать. Округлять:
Или усекать:
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||||
|
|||||||
| tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: нет Всего: 4 |
x3:= (x1 + x2) div 2;
y3:= (y1 + y2) div 2; |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Но это же не гарантирует что точка будет строго на средине отрезка?
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| VICTAR |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 37 Всего: 80 |
Мне кажется, что лучше округлять, результат будет точнее
|
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Вот и я тоже так думаю. Интересно как делаеться все это в популярных графических пакетах, например CorelDraw. Там можно выбрать еденицу измерения. Как там оно приводиться к пикселям?
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 2 Всего: 12 |
Чтобы ты не делал всё равно если длинна отрезка чётная то середины не получиш резултат однй половины будет отличатся от другой на 1 пиксель а если не чётный то центр получиш точный.
Через спец фунуции. Это сообщение отредактировал(а) ivan219 - 17.3.2007, 16:49 |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Не думаю, что тут нужна особая точность: мало-какой пользователь увидит разницу в один пиксель.
Всякую еденицу измерения привести точно привести к пикселям невозможно! Провести линию на мониторе длиной в один сантиметр может только пользователь с карандашом и линейкой! -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Меня беспокоит потеря точности при расчете более сложных вещей. Если делить отрезок там может быть наверное 1 пикс. разницы в ту или иную сторону. С ростом сложности расчета координаты точность будет падать. Как с этим бороться? Или вот еще - скажем есть изделие размером 320.5 см. на 248.2 см., как его отобразить в масштабе на PaintBox, где все координаты измеряються пикселями. Насколько знаю у каждого монитора свои размеры пикселя и наверное междупиксельного пространства (оно может быть даже разным по горизонтали и вертикали). Может полезть в GDI - наверное должны быть специальные функции или может структуры данных хранящие всю эту инфу..
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| VladBD |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 19.11.2006 Репутация: 1 Всего: 5 |
Я думаю если дело здесь не связано с печатью - то можно обойти просто...
- берешь 320,5х248,2 - устанавливаешь свою масштабизацию (например 1см=1пиксель=100% - отображения на экране) - рисуешь сетку - отображаешь на экране с округлением - только при увеличении масштаба до 200% - ты сможешь отрисовать 0,5 - в целый пиксель - при масштабе 500% - 0,2 пикселя ну и полосы прокрутки не забыть и метки на сетке менять т.к. масштабирование и ее коснется... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |