Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2009, 18:02   #1
akolit
Новичок
Джуниор
 
Регистрация: 13.02.2009
Сообщений: 1
По умолчанию GDI+.Увеличение масштаба на дробную величину. Проблемы с дробными частями коордиат

Здравствуйте.
Проблема заключается в следующем:
Имеются некоторые фигуры,заданные набором точек.Есть необходимость увеличить в масштабе данные фигуры в N раз, при том, что N- число с плавающей точкой.При этом необходимо сохранить пропорции всех фигур.
Алгоритм действий следующий:
координаты каждой точки умножаются на N;
но при этом возникают ситуации, при которых одинаковые фигуры до увеличения начинают отличаться друг от друга после увеличения.Это обусловлено тем, что после умножения координаты становятся нецелыми.И их простое округление(как это делает GDI+) работает некорректно.
Испробованы следующие варианты:
1.Отбрасывать дробную часть.
2.При любом значении дробной части округлять всё в большую сторону.
Например, имеются две линии, заданные двумя точками:
====================
Линия 1:
1 точка
(X1=0;Y1=0)

2 точка
(X2=210;Y2=0)
===================
Линия 2:
1 точка
(X1=2;Y1=0)

2 точка
(X2=212;Y2=0)
===================
Длинна линий одинаковая и равна 210;
Коэффициент увеличения N=1.21
Умножим все координаты на N
и получим:
====================
Линия 1:
1 точка
(X1=0;Y1=0)

2 точка
(X1=254.1;Y1=0)
===================
Линия 2:
1 точка
(X1=2.42;Y1=0)

2 точка
(X1=256.52;Y1=0)
===================
Округлив значения, длины линий отличаются на 1.
То есть в двух координатах в координате с меньшим значением накапливается меньше дробной части коэффициента, чем в координате с большим значением.
И такое несоответствие возникает во всех испробованных вариантах при определённых значениях координат.
Вопрос: как избежать данной проблемы и сохранить пропорции при любом коэффициенте и любых значениях координат точек?
akolit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить номер и величину максимального элемента массива, произведение элементов, среднее арифметическое Romer9999 Паскаль, Turbo Pascal, PascalABC.NET 6 19.01.2009 16:35
Как мне в визуальном программировании написать программу увеличения масштаба и уменьшения до исчезновения Надежда.. Мультимедиа в Delphi 3 29.12.2008 19:28
простой вопрос - как получить дробную часть Inta Microsoft Office Excel 2 19.11.2008 22:11
обновление в блоге - Работа с дробными числами на ассемблере Pblog Обсуждение статей 0 14.11.2008 17:50
отделить дробную часть от числа |v||v|<<IpShot Общие вопросы C/C++ 19 24.09.2008 18:21