Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 04-04-2016, 09:43:59

Название: Черно-белый цвет
Отправлено: Алексей (IdeaSoft) от 04-04-2016, 09:43:59
В AutoCAD есть номер цвета черно/белый (indexColor=7)
Подскажите по каким критериям AutoCAD анализирует цвет фона и
выбирает когда нужно ЧЕРНЫЙ или БЕЛЫЙ цвета?
Я думаю эта задача общая и применима не только к AutoCAD.
Есть же  какие-то формулы работы с RGB по которым можно определить
какой цвет выбрать.
Название: Re: Черно-белый цвет
Отправлено: Алексей Кулик от 04-04-2016, 17:28:56
Имеется в виду отображение объектов с таким цветом? Насколько я помню обсуждения, анализируется фон, на котором располагается объект. Ссылку с наскоку найти не смог :(
В принципе,- как идея - можно проверить, переведя абсолютно белый в RGB и абсолютно черный - ну и смотреть, к какому из этих вариантов цвет фона "ближе".
Название: Re: Черно-белый цвет
Отправлено: Алексей (IdeaSoft) от 04-04-2016, 17:53:26
к какому из этих вариантов цвет фона "ближе".
Я попробовал.
Получается, что пограничный цвет фона перехода из темного в светлое -
это RGB(128, 128, 128) выше этого значения уже фон светлее.
и белый цвет примитивов инвертируется в черный.



 
Название: Re: Черно-белый цвет
Отправлено: Александр Ривилис от 04-04-2016, 17:55:32
Есть же  какие-то формулы работы с RGB по которым можно определить
какой цвет выбрать.
Формул не знаю. А вот как в AutoCAD получить RGB по номеру (индексу) цвета - скажу:
Код - C++ [Выбрать]
  1. Adesk::UInt32 acedGetRGB(
  2.     int color
  3. );

Код - C# [Выбрать]
  1. public static int EntityColor.LookUpRgb(
  2.     byte colorIndex
  3. );
Название: Re: Черно-белый цвет
Отправлено: Алексей Кулик от 04-04-2016, 18:03:45
Ну, в качестве примера можно посмотреть, как в AutoCAD будет обрабатываться 7 цвет на фоне, к примеру, RGB(255,47,80).
Кстати, еще одна идея: проверять цвет по схеме не RGB, а HSL - возможно, такой подход окажется более результативным.
Е-мое, где же было это обсуждение? Даже форум вспомнить не могу :(
Название: Re: Черно-белый цвет
Отправлено: Алексей (IdeaSoft) от 04-04-2016, 18:08:42
HSL
Да про SHL я тоже думал. может ее применить.
Название: Re: Черно-белый цвет
Отправлено: Александр Ривилис от 04-04-2016, 18:12:06
Судя по http://adndevblog.typepad.com/autocad/2013/07/wpf-implementation-to-mimic-color-layer-controls.html критерий черный белый именно:
Код - C# [Выбрать]
  1. if (r <= 128 && g <= 128 && b <= 128)
Название: Re: Черно-белый цвет
Отправлено: Алексей (IdeaSoft) от 04-04-2016, 18:21:26
Да точняк именно так!
if (r <= 128 && g <= 128 && b <= 128) {фон темнее} else {фон светлее}
Это я просто не туда посмотрел в диалоге задания цвета. Модель SHL перепутал с RGB