[AI CC-CC2022] Дробные значения координат/размеров

  • Автор темы Автор темы Liquidos
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Liquidos

Участник
Топикстартер
Сообщения
50
Реакции
2
Глюк тянется со времён... да всегда он был, и в инете удивительно мало информации о нем. То есть, натыкаюсь на такие же вопросы на тематических форумах/вопросниках, но к ним традиционно мало ответов и все сводятся к "поставь snap to pixel / align to pixel"

Фиг там! Не работает. Дизайню в пикселях (веб-дизайн), но к другим единицам измерения тоже применимо. Суть проста - вроде все значения координат/размеров целые, привязка к сетке включена, привязка к пиксельной сетке включена, а потом бац - объект либо смещен на 0,001 рх, либо размер "поехал" на ту же величину.

В СС2017 этот глюк дополнился еще и визуально - смотришь на скелет через CTRL+Y с включенной сеткой - какой-то объект нет-нет да и выскочит за линию сетки буквально на чуть-чуть, а посмотришь его размеры/координаты - вроде всё ок, но это тревожный звоночек - такой "чуть смещенный, но не смещенный" объект рано или поздно заимеет дробь в своих параметрах.

Ничего не помогает, только перерисовка объекта с нуля, но это тоже надолго не спасает.

Кто как борется с этим? Можно ли починить этот баг?
 
Зачем с этим бороться?
 
Было бы неплохо взглянуть так сказать визуально на пример вашей проблемы. А то, прочитав такое
такой "чуть смещенный, но не смещенный" объект рано или поздно заимеет дробь в своих параметрах.
прямо в дрожь бросает, что объекты в файле, как только отвернешься от экрана, в пляс бросаются 'hmmm''8()'
 
@_MBK_
f991d616cf114138bdb74b3a7a068918.png


@~RA~

За тем, что программа не должна своевольничать и вносить отсебятину в точно рассчитанный и замеренный макет.
 
Ваш скриншот совершенно ничего не объясняет, скорее, наоборот 'hmmm'
upload_2017-1-31_16-0-39.png
 
Мне кажется, это вопрос об особенностях хранения величин с плавающей точкой и операций с ними.
 
Для начала надо понять, что, собственно, топикстартеру не нравится?
Признаться, лично я совершенно не вкуриваю его хотелки
Он что, хочет, чтобы в любых координатах и единицах измерения все значения x и у целыми были? Дичь какая то
Основная базовая единица иллюстратора - поинт
Если явно объекту указывать координату в поинтах, то она всегда такой останется (если объект не трогать конечно)
Что еще надо? 'hmmm'
 
Мужики, ну вы че - серьезно?

На пальцах: делаю прямоугольник 40х20 в координатах х=100, у=200 (всё в пикселях). Объект получается 39,999х20 в х=100, у=199,989, например. Исправляю непонятно откуда взявшиеся дроби на целые числа - бестолку, дроби вновь потом появляются.
 
На пальцах: делаю прямоугольник 40х20 в координатах х=100, у=200 (всё в пикселях). Объект получается 39,999х20 в х=100, у=199,989, например. Исправляю непонятно откуда взявшиеся дроби на целые числа - бестолку, дроби вновь потом появляются.
Так было и так будет. Читайте, что вам отвечают.
 
@_MBK_
@~RA~

Это не норма, а баг, т.к. создатели люстры заявляют поддержку pixel-perfect рисования.
cd6a16149db74109a2f333cfb4b0834b.png


Индизайн например умеет работать с пикселями (и любой другой единицей измерения) не меняя значения. Хотя по сути тоже является векторным редактором. В фотошопе рисовать не вариант. Нужно избавиться от этого глюка в люстре. Если не знаете как - так и скажите.
 
  • Спасибо
Реакции: NNN5 и dumbm1
Основная базовая единица иллюстратора - поинт
Заранее прошу прощения за тупой вопрос, но разве в Иллюстраторе 1 пиксель не равен 1 поинту?
Пошлите, если что, в нужном направлении ;)
 
в индизайне по-моему пиксель просто всегда равен пункту
 
Это не норма, а баг, т.к. создатели люстры заявляют поддержку pixel-perfect рисования.
Вполне себе норма
Векторный редактор при растеризации всегда будет погрешность допускать, странно, что вы этого не понимаете. Пресловутое выравнивание на пикселы векторнх объектов при здравом размышнеии вообще представляет собой некоего оторванного от реальной жизни сферического коня в вакууме, невозможного в принципе.
разве в Иллюстраторе 1 пиксель не равен 1 поинту?
Не всегда. Только при экранном разрешении.
Иллюстратор же, всегда пересчитывает значения, отличные от его родных поинтов в текущие пикселы, даже если это 1:1
И, соответственно, при любом вычислении с плавающей точкой возникает погрешность на пределе точности вычислений.
Проведем эксперимент: создадим новый документ, в котором единицы измерения будут пикселы, нарисуем прямоугольник 100 на 100. Попробуем сдвинуть его по какой нибудь координате - получим уже 99.999 на 100, что в принципе то же самое, но режет глаз топикстартера.
Попробуем же создать документ с единицами - поинты. Тот же квадрат, при тех же размерах при любых манипуляциях будет сохранять свои 100 на 100
Отсюда ввод: не нравятся странные дроби - пользуйтесь нативными единицами измерения иллюстратора - поинтами и ваши волосы...
 
  • Спасибо
Реакции: dumbm1
@_MBK_
Пресловутое выравнивание на пикселы векторнх объектов при здравом размышнеии вообще представляет собой некоего оторванного от реальной жизни сферического коня в вакууме, невозможного в принципе.
Невозможного в принципе? А разработчики других графических пакетов об этом знают? В подразделении индизайна наверное маги-колдуны сидят, а не лохи-программисты, как в подразделении иллюстратора в офисах эдоуби. Тут наверное действительно требуется некое шаманство, чтобы выполнить такую архисложную задачу: не давать целому числу сдвигаться от своего значения на мизерную дробь. Иначе и не объяснишь успех индиза в этом плане (который _по сути_ тоже является векторным редактором).

Короче решения вы не знаете, чего тут рассуждать, я верстальщикам макета не буду объяснять что в 21 веке точные целочисленные координаты невозможны в принципе, когда уже лет 10 веб успешно векторизуется благодаря html5, css3 и svg - и никто не задает маразматичные координаты и размеры типа 99.999
 
Иначе и не объяснишь успех индиза в этом плане (который _по сути_ тоже является векторным редактором).
"Успех" индизайна вам объяснили
в индизайне по-моему пиксель просто всегда равен пункту
В фотошопе тоже основная единица измерения - пиксель
Короче решения вы не знаете
Решение очевидно, просто сложно объяснить ;)
 
Последнее редактирование модератором:
Никто не мешает вам использовать для работы с вектором для веба какой-нибудь другой редактор, с позиционированием объектов так как вам нужно. html5, css3 и svg - это не полиграфия. Всю эту лабуду, вообще можно в блокноте кодить, просто долго и нудно.
я верстальщикам макета не буду объяснять что в 21 веке точные целочисленные координаты невозможны в принципе
Нормальный верстальщик, должен отдуплять такие вещи сам и ничего ему объяснять не нужно.
 
Если человека в школе не научили, что, как это не странно звучит, но таки 1==0.999(9)
То что ему можно сказать?
Сразу вспоминается недавняя тема про образование 'fp'
 
Статус
Закрыто для дальнейших ответов.