Перейти к содержанию

Рекомендуемые сообщения

Чессно говоря даже не знаю, что тут комментировать  

Спойлер

 

 

cry2.gif

Ссылка на сообщение
Поделиться на другие сайты

До нуля все сбрасывает

В минус научат нану22)))

Ссылка на сообщение
Поделиться на другие сайты

Ээээ, чего кричишь, дорогой?! Плус минус два туда-сюда.... тоже мне проблэма :lol:

Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, Kreator сказал:

Плус минус два туда-сюда.... тоже мне проблэма

от если б так зарплата минус туда плюс коллеге... тогда проблема...

------

там цвет, тут привязка криво соскочила...

но ты прав, на бумаге все равно не видно)))

добавлено через 6 минут
13 часов назад, EdwardSt сказал:

в область минусов ушло бы?

кстати с 255 не сбрасывает

с 254 сбрасывает по многу, потом меньше и меньше... потом по одному,

подозреваю если б не Short а Double, то по 0,001 бы сбрасывал

походу по экспоненте, ноль боится проскочить)))

Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, doctorraz сказал:

но ты прав, на бумаге все равно не видно)))

Мне преподаватель робототехники в вузе говорил, когда я ему чертежи показывал: "Бумага то всё стерпит, а вот металл и убить может"

Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

что б два раза не вставать

Цветовая модель HSL в этот код возвращает погоду

 [CommandMethod("t-adn-CDL")]
            public void ShowColorDialog()
            {
                Document doc =
                  Application.DocumentManager.MdiActiveDocument;
                Database db = doc.Database;
                Editor ed = doc.Editor;

                ColorDialog cd = new ColorDialog();
                System.Windows.Forms.DialogResult dr =
                  cd.ShowDialog();
                if (dr == System.Windows.Forms.DialogResult.OK)
                {
                    ed.WriteMessage(
                      "\nВыбран цвет: " +
                      cd.Color.ToString()
                    );
                }
            }

 

Пусть посмотрят, где там собака порылась

Ссылка на сообщение
Поделиться на другие сайты
В 26.08.2021 в 11:53, doctorraz сказал:

кстати с 255 не сбрасывает

 

Пример заинтересовал, потому уделил время на исследование проблемы.

 

Спойлер

R,G,B принято представлять числами 0-255.

По правилам преобразования H(тон) - угол 0.0-360.0, L(светлота) и S(насыщенность) - [0.0 - 1.0].

В нанокаде им поставлены целые числа H(тон) - угол 0-360, L(светлота) и S(насыщенность) - [0 - 100].

С отбрасыванием(!) дробной части. Тогда получается, что ошибка округления составляет для H - 1/360=0.003, для L и S - 0.01

Преобразование в обратную сторону проходит те же стадии -  расчет в вещественных числах и отбрасывание дробной части.

Суммарная ошибка может достигать 0,023 - более 2%.

Точные значения при преобразовании туда-сюда достигаются только при операциях с вещественными числами без округлений, проверил в Excel.

 

Что тут делать - вопрос неоднозначный.

Оперировать в полях ввода вещественными числами - так себе идея. Да и округление все равно будет (до скольких то знаков после запятой).

Убрать в принципе одну из цветовых моделей - тоже не стал бы рекомендовать.

Наверное, лучше оставить как есть...

 

 

RGB-HSL.xlsx

Изменено пользователем EdwardSt
Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, EdwardSt сказал:

Точные значения при преобразовании туда-сюда достигаются только при операциях с вещественными числами без округлений,

не только в Excel, проверил в AutoCAD, там то же все ровно, т.е. в принципе решаем вопрос если подумать

Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, doctorraz сказал:

проверил в AutoCAD, там то же все ровно

 

Не пробовал в акаде.

Если там все преобразования точные, значит акад оперирует ВЕЩЕСТВЕННЫМИ числами при указании цвета слоя.

Либо глобально, либо в момент диалога. Но если только в диалоге, то при фиксации цвета при повторном запуске диалога ошибка появится.

Это математика.

 

PS. В предыдущем посте добавил Excel, откуда все становится ясно...

Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, EdwardSt сказал:

Не пробовал в акаде.

 

по видимому в АК RGB=const, а HSL подгоняется под RGB всегда, поэтому значения самопроизвольно не меняются.

В нано похоже, что каждый раз пересчитывается от текущего HSL->RGB потом RGB->HSL, перестарались малехо

Я не художник, мне точная цветопередача не нужна, но несуразность (когда переключаешь вкладки, а значения меняются, самопроизвольно) глаз резанула

добавлено через 9 минут
19 минут назад, EdwardSt сказал:

то при фиксации цвета при повторном запуске диалога ошибка появится.

Это математика.

В АК нет...

он хранит по видимому в RGB и всегда приводит к HSL (наоборот только если настраивать HSL явно), поэтому хоть в диалоге, хоть при повторном запуске, значения неизменны/

По крайней мере АК по коду выше возвращает именованный, RGB или из альбома цветов имя цвета

нано соответственно только первых два

Отсюда вывод, что внутри кады HSL не оперируют (хотя могу ошибаться)))

Ссылка на сообщение
Поделиться на другие сайты

Всё просто - нужно хранить точный цвет без округления, а в окна выводить округлённое значение.

Ссылка на сообщение
Поделиться на другие сайты
26 минут назад, Kreator сказал:

Всё просто - нужно хранить точный цвет без округления

дык он и хранится, как точное значение RGB или индексный..

HSL на лету пересчитывает в ColorDialog

 

 

Ссылка на сообщение
Поделиться на другие сайты

Такая богатая палитра, которую представляют нынешние кадовские системы, на мой взгляд, явно превышает потребности проектировщиков - пользователей этих систем. 256 индексированных цветов, которые, кстати. свободно преобразуются в монохром, - за глаза. И наличие еще и разных цветовых моделей вообще выглядит перебором.

Но коль уж сместились в сторону математики и особенностей преобразования, поясню чуть подробнее.

 

Предлагаю рассмотреть особенности цвета RGB (250,200,150) и особенности в NC21 и AC14

1. Разберемся с математикой на примере Excel (прилагаю немного модифицированный вариант))

Спойлер

image.png.6d018ea2788254573d68a20638546e52.png

 

Разница значений в АС и NC объясняется различным подходом к округлению.

В NC - это просто отбрасывание дробной части, в АС - математическое округление

 

2. Открытие диалога и переключение с RGB в HSL

Спойлер

image.png.9787d95907d266f273a6ce0901e31fb0.pngimage.png.18fcdddd97c364aeede29186547b7e57.png

 

Обращаем внимание, что сразу после переключения появились округленные значения HSL (точнее, просто отброшена дробная часть).

А также появились новые значения RGB уже обратного преобразования этих округленных значений с новым округлением.

Спойлер

image.png.d38b26372908c3cd7cb6c32b38baf533.pngimage.png.53993a13b03a35fcdd57204b4bb34930.png

Обращаем внимание, что появились расчетные значения HSL, причем в диалоге они еще являются вещественными числами, хотя представлены целочисленными. Именно поэтому инфа об обратном преобразовании (но пока еще не само преобразование!) имеет правдоподобный характер (250,200,150)

 

 

3. Попытка модифицировать значения HSL путем кликов на все три бегунка вверх-вниз (этим добиваемся того эффекта, что для HSL установлены именно те значения, которые видны, а не округленные). И переключение обратно в RGB

 

Спойлер

image.png.ff5dc0f30d45ca4048dfe11a83f70c95.pngimage.png.49d6e91c88880895473fff4e4a5bf1cc.png

Спойлер

image.png.052416edd436133dd2f747230f91ee53.pngimage.png.1e80cbf1ae2f7ca5a9ffeb3c0c13f5b8.png

 

Итого:

Данный простенький анализ показывает, что ОБЕ системы при  преобразовании RGB->HSL->RGB "теряют" значения за счет округления.

Но:

  1. У АС чуть более точные результаты (250,199,148), чем у NC(249,198,148). Тут дело в банальном  округлении: в AC - математически, в NC - отбрасывание дробной части.
  2. Дополнительно, АС хоть и показывает округленные значения HSL, но в диалоге по-прежнему хранит вещественные значения, пока их явным образом не изменишь (в данном примере путем клика на бегунке вверх-вниз). Собственно этим объясняется, что аналогичное видео, как в начале ветки, для АС не создать))

Пожалуй, подход разработчиков АС выглядит посимпотичней, но у разработчиков NC он в чем-то более честный, т.к. ПРЕОБРАЗОВАНИЕ "ТУДА-СЮДА" В ЦЕЛЫХ ЧИСЛАХ В ЛЮБОМ СЛУЧАЕ ПРИВОДИТ К ИСКАЖЕНТЮ РЕЗУЛЬТАТА. Еще раз повторюсь: это математика.

 

RGB-HSL (мод).xlsx

Изменено пользователем EdwardSt
Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Kreator сказал:

Всё просто - нужно хранить точный цвет без округления, а в окна выводить округлённое значение.

Для отрезка установил цвет RGB (250,200,150).

Спойлер

((-1 . #<Имя примитива: 000001D3FF58DD60>) (0 . "LINE") (5 . "4C0") (330 . #<Имя примитива: 000001D3FF4D3260>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 31) (420 . 16435350) (48 . 100.0) (100 . "AcDbLine") (10 5775.19 40846.2 0.0) (11 26176.7 35472.1 0.0) (210 0.0 0.0 1.0))

 

DXF-группа 420:   16435350 = 150 + 200 * 256 + 250 * 256 * 256   - целочисленное представление RGB (250,200,150)

DXF-группа 62: Номер цвета (фиксированный) - 31 - индексированное представление  RGB (250,200,150) в диапазоне 1-255

 

Т.е., формат DWG предусматривает хранение цвета только в целочисленных значениях индексированного цвета  и (опционально) RGB, если установлена полноцветная палитра.

Ссылка на сообщение
Поделиться на другие сайты
40 минут назад, EdwardSt сказал:

но у разработчиков NC он в чем-то более честный, т.к. ПРЕОБРАЗОВАНИЕ "ТУДА-СЮДА" В ЦЕЛЫХ ЧИСЛАХ В ЛЮБОМ СЛУЧАЕ ПРИВОДИТ К ИСКАЖЕНТЮ РЕЗУЛЬТАТА.

а зачем честно-точно? Какая польза от мельтешения цифр?

HSL используется только в  ColorDialog, потом цвет все равно приводится к RGB и в таком виде хранится и используется,

в автокаде еще есть третья палитра альбомы цветов (ColorBook), но сути не меняет, коль цвет хранится как ACI или TrueColor..

 

Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, doctorraz сказал:

а зачем честно-точно? Какая польза от мельтешения цифр?

Да кто бы спорил!

Убрать выпадающий список с палитрами (а еще лучше, вкладку RGB) - и дело с концом!:dance:

Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, EdwardSt сказал:

Убрать выпадающий список с палитрами (а еще лучше, вкладку RGB) - и дело с концом!

ну ежели по другому не могут,  то и это вариант)))

если серьезно я имел в виду, что HSL самим кадом нигде не используется, только для удобства пользовательской настройки цвета...

Спойлер

image.png.55fd6347246b134fbd2d77e63eeabbc8.png

а был девятый)))

добавлено через 7 минут

Ну и коль кад пользует целочисленный цвет, выполнять вычисления с точностью до ....

Перфекционизм жэж

Ссылка на сообщение
Поделиться на другие сайты
29 минут назад, doctorraz сказал:
  уот такой цвет ставлю и нанодев може еще 100500 лет прозрачность делать)))) (Скрыть контент)

image.png.55fd6347246b134fbd2d77e63eeabbc8.png

а был девятый)))

Не понял примера и смайлика после.

 

Ведь

Спойлер

image.png.8b520999b2389343a840cd3b9f54143a.pngimage.png.3bae5bf72c15fd9cfbd84cc18fe92fb6.png

 

а прозрачность - это отдельный параметр.

DXF-группа 440: 32-разрядное целое значение. При использовании в режиме полноцветной палитры — значение прозрачности.

 

 

Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, EdwardSt сказал:

а прозрачность - это отдельный параметр.

прозрачность в нано , это как тот суслик, вроде есть, но пользоваться НЕТ.

поэтому именованный цвет №9

в HSL ставлю ему яркость 60

получается RGB 153 153 153

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

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, doctorraz сказал:

На бумаге выглядит как прозрачность

Как прозрачность чёрного, надо думать? :D

Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Kreator сказал:

Как прозрачность чёрного, надо думать

Серый прозрачность черного

Розовый прозрачность красного, очевидножэж)))

Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, doctorraz сказал:

Серый прозрачность черного

Розовый прозрачность красного, очевидножэж)))

Да так все и делают. Но это не даёт равноценного эффекта прозрачности, увы.

Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, Kreator сказал:

Но это не даёт равноценного эффекта прозрачности, увы

Дык в nano муляж прозрачности

добавлено через 1 минуту

 для подложек генпланов вполне, чай не картины рисуем

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
×
×
  • Создать...