doctorraz Posted August 25, 2021 Report Share Posted August 25, 2021 Чессно говоря даже не знаю, что тут комментировать Спойлер 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted August 25, 2021 Report Share Posted August 25, 2021 Интересно, в область минусов ушло бы? 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted August 25, 2021 Author Report Share Posted August 25, 2021 До нуля все сбрасывает В минус научат нану22))) Quote Link to comment Share on other sites More sharing options...
Kreator Posted August 26, 2021 Report Share Posted August 26, 2021 Ээээ, чего кричишь, дорогой?! Плус минус два туда-сюда.... тоже мне проблэма 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted August 26, 2021 Author Report Share Posted August 26, 2021 16 минут назад, Kreator сказал: Плус минус два туда-сюда.... тоже мне проблэма от если б так зарплата минус туда плюс коллеге... тогда проблема... ------ там цвет, тут привязка криво соскочила... но ты прав, на бумаге все равно не видно))) добавлено через 6 минут 13 часов назад, EdwardSt сказал: в область минусов ушло бы? кстати с 255 не сбрасывает с 254 сбрасывает по многу, потом меньше и меньше... потом по одному, подозреваю если б не Short а Double, то по 0,001 бы сбрасывал походу по экспоненте, ноль боится проскочить))) 1 Quote Link to comment Share on other sites More sharing options...
oleg25 Posted August 26, 2021 Report Share Posted August 26, 2021 5 минут назад, doctorraz сказал: но ты прав, на бумаге все равно не видно))) Мне преподаватель робототехники в вузе говорил, когда я ему чертежи показывал: "Бумага то всё стерпит, а вот металл и убить может" 1 1 Quote Link to comment Share on other sites More sharing options...
Alex_G Posted August 26, 2021 Report Share Posted August 26, 2021 Записали #37094 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted August 27, 2021 Author Report Share Posted August 27, 2021 Спасибо. что б два раза не вставать Цветовая модель 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() ); } } Пусть посмотрят, где там собака порылась 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted August 31, 2021 Report Share Posted August 31, 2021 (edited) В 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 Edited August 31, 2021 by EdwardSt Quote Link to comment Share on other sites More sharing options...
doctorraz Posted August 31, 2021 Author Report Share Posted August 31, 2021 2 минуты назад, EdwardSt сказал: Точные значения при преобразовании туда-сюда достигаются только при операциях с вещественными числами без округлений, не только в Excel, проверил в AutoCAD, там то же все ровно, т.е. в принципе решаем вопрос если подумать Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted August 31, 2021 Report Share Posted August 31, 2021 9 минут назад, doctorraz сказал: проверил в AutoCAD, там то же все ровно Не пробовал в акаде. Если там все преобразования точные, значит акад оперирует ВЕЩЕСТВЕННЫМИ числами при указании цвета слоя. Либо глобально, либо в момент диалога. Но если только в диалоге, то при фиксации цвета при повторном запуске диалога ошибка появится. Это математика. PS. В предыдущем посте добавил Excel, откуда все становится ясно... Quote Link to comment Share on other sites More sharing options...
doctorraz Posted August 31, 2021 Author Report Share Posted August 31, 2021 12 минут назад, EdwardSt сказал: Не пробовал в акаде. по видимому в АК RGB=const, а HSL подгоняется под RGB всегда, поэтому значения самопроизвольно не меняются. В нано похоже, что каждый раз пересчитывается от текущего HSL->RGB потом RGB->HSL, перестарались малехо Я не художник, мне точная цветопередача не нужна, но несуразность (когда переключаешь вкладки, а значения меняются, самопроизвольно) глаз резанула добавлено через 9 минут 19 минут назад, EdwardSt сказал: то при фиксации цвета при повторном запуске диалога ошибка появится. Это математика. В АК нет... он хранит по видимому в RGB и всегда приводит к HSL (наоборот только если настраивать HSL явно), поэтому хоть в диалоге, хоть при повторном запуске, значения неизменны/ По крайней мере АК по коду выше возвращает именованный, RGB или из альбома цветов имя цвета нано соответственно только первых два Отсюда вывод, что внутри кады HSL не оперируют (хотя могу ошибаться))) 1 Quote Link to comment Share on other sites More sharing options...
Kreator Posted September 1, 2021 Report Share Posted September 1, 2021 Всё просто - нужно хранить точный цвет без округления, а в окна выводить округлённое значение. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 1, 2021 Author Report Share Posted September 1, 2021 26 минут назад, Kreator сказал: Всё просто - нужно хранить точный цвет без округления дык он и хранится, как точное значение RGB или индексный.. HSL на лету пересчитывает в ColorDialog Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted September 1, 2021 Report Share Posted September 1, 2021 (edited) Такая богатая палитра, которую представляют нынешние кадовские системы, на мой взгляд, явно превышает потребности проектировщиков - пользователей этих систем. 256 индексированных цветов, которые, кстати. свободно преобразуются в монохром, - за глаза. И наличие еще и разных цветовых моделей вообще выглядит перебором. Но коль уж сместились в сторону математики и особенностей преобразования, поясню чуть подробнее. Предлагаю рассмотреть особенности цвета RGB (250,200,150) и особенности в NC21 и AC14 1. Разберемся с математикой на примере Excel (прилагаю немного модифицированный вариант)) Спойлер Разница значений в АС и NC объясняется различным подходом к округлению. В NC - это просто отбрасывание дробной части, в АС - математическое округление 2. Открытие диалога и переключение с RGB в HSL Спойлер Обращаем внимание, что сразу после переключения появились округленные значения HSL (точнее, просто отброшена дробная часть). А также появились новые значения RGB уже обратного преобразования этих округленных значений с новым округлением. Спойлер Обращаем внимание, что появились расчетные значения HSL, причем в диалоге они еще являются вещественными числами, хотя представлены целочисленными. Именно поэтому инфа об обратном преобразовании (но пока еще не само преобразование!) имеет правдоподобный характер (250,200,150) 3. Попытка модифицировать значения HSL путем кликов на все три бегунка вверх-вниз (этим добиваемся того эффекта, что для HSL установлены именно те значения, которые видны, а не округленные). И переключение обратно в RGB Спойлер Спойлер Итого: Данный простенький анализ показывает, что ОБЕ системы при преобразовании RGB->HSL->RGB "теряют" значения за счет округления. Но: У АС чуть более точные результаты (250,199,148), чем у NC(249,198,148). Тут дело в банальном округлении: в AC - математически, в NC - отбрасывание дробной части. Дополнительно, АС хоть и показывает округленные значения HSL, но в диалоге по-прежнему хранит вещественные значения, пока их явным образом не изменишь (в данном примере путем клика на бегунке вверх-вниз). Собственно этим объясняется, что аналогичное видео, как в начале ветки, для АС не создать)) Пожалуй, подход разработчиков АС выглядит посимпотичней, но у разработчиков NC он в чем-то более честный, т.к. ПРЕОБРАЗОВАНИЕ "ТУДА-СЮДА" В ЦЕЛЫХ ЧИСЛАХ В ЛЮБОМ СЛУЧАЕ ПРИВОДИТ К ИСКАЖЕНТЮ РЕЗУЛЬТАТА. Еще раз повторюсь: это математика. RGB-HSL (мод).xlsx Edited September 1, 2021 by EdwardSt Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted September 1, 2021 Report Share Posted September 1, 2021 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, если установлена полноцветная палитра. 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 1, 2021 Author Report Share Posted September 1, 2021 40 минут назад, EdwardSt сказал: но у разработчиков NC он в чем-то более честный, т.к. ПРЕОБРАЗОВАНИЕ "ТУДА-СЮДА" В ЦЕЛЫХ ЧИСЛАХ В ЛЮБОМ СЛУЧАЕ ПРИВОДИТ К ИСКАЖЕНТЮ РЕЗУЛЬТАТА. а зачем честно-точно? Какая польза от мельтешения цифр? HSL используется только в ColorDialog, потом цвет все равно приводится к RGB и в таком виде хранится и используется, в автокаде еще есть третья палитра альбомы цветов (ColorBook), но сути не меняет, коль цвет хранится как ACI или TrueColor.. Спойлер Преобразование цветов Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted September 1, 2021 Report Share Posted September 1, 2021 13 минут назад, doctorraz сказал: а зачем честно-точно? Какая польза от мельтешения цифр? Да кто бы спорил! Убрать выпадающий список с палитрами (а еще лучше, вкладку RGB) - и дело с концом! Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 1, 2021 Author Report Share Posted September 1, 2021 11 минут назад, EdwardSt сказал: Убрать выпадающий список с палитрами (а еще лучше, вкладку RGB) - и дело с концом! ну ежели по другому не могут, то и это вариант))) если серьезно я имел в виду, что HSL самим кадом нигде не используется, только для удобства пользовательской настройки цвета... Спойлер а был девятый))) добавлено через 7 минут Ну и коль кад пользует целочисленный цвет, выполнять вычисления с точностью до .... Перфекционизм жэж Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted September 1, 2021 Report Share Posted September 1, 2021 29 минут назад, doctorraz сказал: уот такой цвет ставлю и нанодев може еще 100500 лет прозрачность делать)))) (Скрыть контент) а был девятый))) Не понял примера и смайлика после. Ведь Спойлер а прозрачность - это отдельный параметр. DXF-группа 440: 32-разрядное целое значение. При использовании в режиме полноцветной палитры — значение прозрачности. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 1, 2021 Author Report Share Posted September 1, 2021 1 минуту назад, EdwardSt сказал: а прозрачность - это отдельный параметр. прозрачность в нано , это как тот суслик, вроде есть, но пользоваться НЕТ. поэтому именованный цвет №9 в HSL ставлю ему яркость 60 получается RGB 153 153 153 На бумаге выглядит как прозрачность (на моих плоттерах), но без nanoпобочек прозрачности Quote Link to comment Share on other sites More sharing options...
Kreator Posted September 1, 2021 Report Share Posted September 1, 2021 1 час назад, doctorraz сказал: На бумаге выглядит как прозрачность Как прозрачность чёрного, надо думать? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 1, 2021 Author Report Share Posted September 1, 2021 2 минуты назад, Kreator сказал: Как прозрачность чёрного, надо думать Серый прозрачность черного Розовый прозрачность красного, очевидножэж))) Quote Link to comment Share on other sites More sharing options...
Kreator Posted September 1, 2021 Report Share Posted September 1, 2021 1 минуту назад, doctorraz сказал: Серый прозрачность черного Розовый прозрачность красного, очевидножэж))) Да так все и делают. Но это не даёт равноценного эффекта прозрачности, увы. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 1, 2021 Author Report Share Posted September 1, 2021 5 минут назад, Kreator сказал: Но это не даёт равноценного эффекта прозрачности, увы Дык в nano муляж прозрачности добавлено через 1 минуту для подложек генпланов вполне, чай не картины рисуем Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.