1

Тема: Накладывание примитивов при отрисовке

Мы столкнулись с тем что когда рисуем полилинию поверх прямоугольника (она должна частично проходить по прямоугольнику), то накладывания по оси Y не происходит. По оси X всё нормально. Приходится рисовать полилинию на 1 пиксель ниже. Это очень неудобно, особенно в связи с тем что значения не константы, а функции. Возможно ли это как-нибудь исправить?

2

Re: Накладывание примитивов при отрисовке

Здравствуйте.
Не совсем понятно, что имеется в виду. Приведите, пожалуйста, рисунок проблемы и объясните подробнее.

3

Re: Накладывание примитивов при отрисовке

На тестовом рисунке () изображен прямоугольник и полилиния. По координатам ступенька полилинии должна перекрывать прямоугольник. Но на горизонтальном участке перекрытия не происходит

Прямоугольник: X1=0 Y1=0 X2=200 Y2=400
Полилиния:
1) X=-50  Y=200
2) X=0     Y=200
3) X=0     Y=400
4) X=100 Y=400
5) X=100 Y=500

http://forum.phazotron-7.com/misc.php?action=pun_attachment&item=45&preview&secure_str=45t38

Post's attachments

Иконка вложений Наложение.png 139.52 Кб, 60 скачиваний с 2016-03-04 

4

Re: Накладывание примитивов при отрисовке

Прорисовка верна.
При разработке примитивов было решено подойти к их рисованию с точки зрения математики и не прорисовывать последний пиксель в линиях, прямоугольниках и некоторых других примитивах. Если его рисовать, то у линии с координатами (0,0),(10,0) длина окажется 11, а не 10 пикселей, как должно быть. В случае прямоугольника, вершина x2,y2 всегда на 1 пиксель выступает за его край. Это даёт математически верную ширину и высоту прямоугольника.

5

Re: Накладывание примитивов при отрисовке

Здравствуйте!
Вышла новая версия САПР Формат Про. Теперь при прорисовке примитивов Линия и Прямоугольник может учитываться вершина x2,y2, что определяется настройкой в профиле проекта (опция Прорисовка последней координаты на странице Основное). Тела примитивов будут покрывать данные координаты, что увеличит на единицу длину Линии, а также ширину и высоту Прямоугольника.
Пожалуйста, скачивайте.