Черно-белый цвет

Автор Тема: Черно-белый цвет  (Прочитано 8619 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Черно-белый цвет
« : 04-04-2016, 09:43:59 »
В AutoCAD есть номер цвета черно/белый (indexColor=7)
Подскажите по каким критериям AutoCAD анализирует цвет фона и
выбирает когда нужно ЧЕРНЫЙ или БЕЛЫЙ цвета?
Я думаю эта задача общая и применима не только к AutoCAD.
Есть же  какие-то формулы работы с RGB по которым можно определить
какой цвет выбрать.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Черно-белый цвет
« Ответ #1 : 04-04-2016, 17:28:56 »
Имеется в виду отображение объектов с таким цветом? Насколько я помню обсуждения, анализируется фон, на котором располагается объект. Ссылку с наскоку найти не смог :(
В принципе,- как идея - можно проверить, переведя абсолютно белый в RGB и абсолютно черный - ну и смотреть, к какому из этих вариантов цвет фона "ближе".
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Черно-белый цвет
« Ответ #2 : 04-04-2016, 17:53:26 »
к какому из этих вариантов цвет фона "ближе".
Я попробовал.
Получается, что пограничный цвет фона перехода из темного в светлое -
это RGB(128, 128, 128) выше этого значения уже фон светлее.
и белый цвет примитивов инвертируется в черный.



 

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Черно-белый цвет
« Ответ #3 : 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. );
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Черно-белый цвет
« Ответ #4 : 04-04-2016, 18:03:45 »
Ну, в качестве примера можно посмотреть, как в AutoCAD будет обрабатываться 7 цвет на фоне, к примеру, RGB(255,47,80).
Кстати, еще одна идея: проверять цвет по схеме не RGB, а HSL - возможно, такой подход окажется более результативным.
Е-мое, где же было это обсуждение? Даже форум вспомнить не могу :(
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Черно-белый цвет
« Ответ #5 : 04-04-2016, 18:08:42 »
HSL
Да про SHL я тоже думал. может ее применить.

Отмечено как Решение Алексей (IdeaSoft) 04-04-2016, 18:20:43

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Черно-белый цвет
« Ответ #6 : 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)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Черно-белый цвет
« Ответ #7 : 04-04-2016, 18:21:26 »
Да точняк именно так!
if (r <= 128 && g <= 128 && b <= 128) {фон темнее} else {фон светлее}
Это я просто не туда посмотрел в диалоге задания цвета. Модель SHL перепутал с RGB