Просмотр полной версии : Как запретить размытие фигуры?
viktorami
10.06.2012, 15:08
Если рисовать при помощи встроенных инструментов as3 фигуры - то у них не получаются четкие цветовые края с точки зрения границы между пикселями и с точки зрения кода цвета. а на границах слегка размываются видимо так как являются не растром. А у меня возникла необходимость провести четкие цветные прямоугольники и это размытие не годится. Можно как то его отключить в конкретной фигуре или в конкретном Sprite? что вообще можно тут сделать?
HardCoder
10.06.2012, 15:25
Можно, хотя-бы скрин этого явления. А то второй раз от вас вижу похожую тему, и до сих пор не пойму - что это за такое чудо? Может в вашем мониторе проблема?
А можно скрин посмотреть, что у вас и что должно получиться? Потому что я не замечал у себя, размытие векторных фигур.
Я думаю тут пишется про antialiasing. Надо смотреть параметры lineStyle. pixelHinting в true и может caps поправить, хотя ок должно быть.
viktorami
10.06.2012, 15:54
сейчас
Добавлено через 3 минуты
http://s019.***********/i601/1206/23/10ea14d48c32.png
хочу подложить прямоугольник под картинки чтобы была красивая ОДНОПИКСЕЛЬНАЯ рамка. но как видите- прямоугльник программно полностью белый из за зглаживания на границе получается канва более серого цвета. ее я не рисовал конечно.
viktorami
10.06.2012, 15:58
вот в
Попробуйте использовать целые координаты и размеры
viktorami
10.06.2012, 16:06
я и так использовал только целые. вот код:
mc.graphics.beginFill(0xFFFFFF);
mc.graphics.drawRect(0,1,142, 109);
mc.graphics.endFill();
Добавлено через 1 минуту
вот вв в
viktorami
10.06.2012, 16:09
мало того! вы видите что оно блин обрабатывает еще и возле границы внутренней с картинками. двойная канва серая!
Simplifier
10.06.2012, 17:21
Скорей всего, у тебя сама фигура в которой рисуешь стоит на дробных координатах. Или ее контейнер. Если б везде координаты б были целые, размытию неоткуда было бы взяться.
viktorami
10.06.2012, 17:56
сейчас проверю.
Добавлено через 19 минут
не откуда взятся там дробным координатам.
Добавлено через 37 минут
у меня вообще все координаты тип int)
Добавлено через 43 минуты
просто - чертится прямоугольник а вокруг него расплывающимся ореолом "смягченный" цвет шириной в 1 пиксель.
Добавлено через 51 минуту
самое смешное что начертил линию - этой проблемы нет
Может попробовать не рисовать, а в как Bitmap добавить с параметром
bitmap.pixelSnapping = PixelSnapping.ALWAYS
у меня вообще все координаты тип int)
Может сама флешка растягивается? - можно для верности написать:
stage.scaleMode = StageScaleMode.NO_SCALE
Потому что целые векторные прямоугольники при целых координатах обычно не размазываются
elder_Nosferatu
10.06.2012, 22:28
Если перед рисованием вызвать lineStyle, не важно с какими параметрами, тогда фигура будет обведена линией. Если толщина линии не х2, тогда линия на целых коолдинатах будет размытой.
Например:
толщина линии 1 пиксель.
начало 10, 10
конец 10, 50
В этом случае линия будет смотрется как скругленный прямоугольник:
верх-лево 9.5, 9.5
низ-право 10.5 50.5
рад. скругления 0.5
ширина 1
высота 41
elder_Nosferatu
10.06.2012, 22:42
28077
Если перед рисованием вызвать lineStyle, не важно с какими параметрами, тогда фигура будет обведена линией. Если толщина линии не х2, тогда линия на целых коолдинатах будет размытой.
Да не, у линии там какой-то механизм выравнивания - размытой линия в 1 пиксель не будет.
Но, да если нарисовать прямоугольник со скругленными углами - прямоугольник с линией в 2 пикселя будет гораздо ровнее, чем с линией в 1 пиксель, иногда даже так делал, чтобы получить ровный прямоугольник с линиией толщиной в 1 пиксель:
g.lineStyle(2, 0x000000);
g.drawRoundRect(0, 0, 100, 100, 6);
g.lineStyle();// Отключаем линию
g.beginFill(0xffffff);// Рисуем поверх 2-ной линии одну заливку без линии
g.drawRoundRect(0, 0, 100, 100, 6);// Заливка перекрывает половину линии
g.endFill();// Выглядит как прямоугольник с одинарной линией, но ровный
У топикстартера нет обводки.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.