Чтобы была понятна суть вопроса, постараюсь объяснить....
Что представляет из себя процесс рисования на известных мне языках?
1. Открываем окно:.. If OpenWindow(0, 0, 0, 200, 200....
2. Объявляем холст на котором будем рисовать:... If CreateImage(0, 200, 200)....
3. И только теперь рисуем Box(x, y, 200-2*x, 200-2*y, RGB(Random(255), Random(255), Random(255)))....(или помещаем на холст готовую картинку bmp или ещё что-то....
И Вот теперь возвращаемся к вопросу заданному выше...
Есть ли язык, который в случае если мы "случайно забыли" открыть окно и объявить холст, вместо того, чтобы выдать ошибку, будет считать своим холстом сам экран монитора?
Т. е. поместит прямо рисунок поверх "рабочего стола"....
Причем не создаст окно автоматически, зальет его черным или белым и на него поместит рисунок, а именно наложит рисунок на экран....
Простой пример применения подобного....
Допустим нам нужно окно нестандартной формы с нестандартными свойствами и т. д....
Что приходит в голову?
Правильно нарисовать это окно самостоятельно и задать ему и его элементам нужные свойства... И если есть возможность рисовать без холста - вуаля....
Нарисовал то, что хочешь, просчитал события, задал на них реакцию....
И вот оно нестандартное окно с любыми свойствами....
В одной области оно дырявое (сквозь него можно кликать перетаскивать то, что находится под ним и т. п.) и полностью прозрачное, в другой абсолютно не прозрачное, но дырявое, в третей "твердое "(т. е. обычное), но полупрозрачное (или прозрачное) а в четвертой полупрозрачное и дырявое (как тень видеть его можно а вот клик проходит сквозь него )
Всё это не составляло бы труда на языке, где объявление холста не обязательно....
Другие языки программирования и технологии
Существует ли язык в котором понятия: окно (форма) и холст не обязательны?
Да ущербный C# и его WPF дают такую возможность в пару кликов. Но, разумеется, окном оно все-таки будет, но только логически, а не графически. И оно без холста. Можешь что угодно рисовать, с дырами, любой прозрачностью, и т. д. И оно будет прям поверх рабочего стола. При этом в отличие от GDI+ там и все обычные контролы поддерживаются. Все такие свистопердящие окна именно так и делаются. Ну а если не хочешь ущербный C#, то найди примеров с GDI+ на пурике, я видел такой пример однажды. Но там не получится размещать в этом окне обычные контролы, и кода много.
Елман Сейсенбеков
В том, что подобный подход требует большое количество кода я даже не сомневаюсь...
В языках программирования рисования вообще нет. Рисование - это отдельные библиотеки, которые используют возможности операционной системы. Все эти окна, холсты, перья - это реализуется не языком и даже не библиотекой, а операционной системой.
Так что если ты возьмёшь, например, библиотеку для MS-DOS, то сможешь рисовать без окон и холстов. Но и работать такая программа будет только в эмуляторе MS-DOS.
Так что если ты возьмёшь, например, библиотеку для MS-DOS, то сможешь рисовать без окон и холстов. Но и работать такая программа будет только в эмуляторе MS-DOS.
Елман Сейсенбеков
Все верно. Но ведь язык, включая все его библиотеки, можно рассматривать как набор инструментов (функций и операторов), применяемых в том числе и для создания графики. (графических приложений) Собственно вопрос о графике у меня возник после того, как я столкнулся с неким затруднением. Нужно было получить цвет пикселя на экране.... функция, возвращающая цвет пикселя в языке была, только вот она возвращала цвет сугубо внутри некой "области для рисования", т. е. области которую необходимо сначала объявить, потом чем-либо заполнить, а уже потом получить цвет пикселя данной области....
У меня же была несколько другая задача.... не узнать цвет точки мной же созданного рисунка, а узнать цвет уже существующей (вне моей программы) точки
У меня же была несколько другая задача.... не узнать цвет точки мной же созданного рисунка, а узнать цвет уже существующей (вне моей программы) точки
Елман Сейсенбеков
Не поспоришь. Что верно, то верно. Правда ассемблера я уж точно не знаю. :-) Да и насколько мне известно, кроме сложности в написании кода у него есть еще один минус (ярко выраженная индивидуальность этого кода в зависимости от железа) - возможно ошибаюсь... если что поправьте...
Нет: языки программирования в целом не оперируют такими сущностями как "холст", "рабочий стол", и так далее - они оперируют данными (числами, в конечном итоге). А за упомянутые сущности, отвечает либо ОС (точнее, графическая подсистема), либо напрямую микропрограмма BIOS/EFI.
Крч, по факту ты хочешь чтобы комп как-то магически угадывал твои мысли и перерабатывал их из бессвязного агуканья в четкие формальные инструкции графического вывода - при актуальном уровне технологий, это невозможно. Вероятно, такое станет возможным после создания настоящего ИИ, и нейроинтерфейса к ЭВМ.
// Есть еще проблема, и она уже неразрешима в контексте задачи: проблема перспективы. Перспектива это такая штука, благодаря которой мы пространственно воспринимаем графическое изображение (путем искажений создавая визуальную иллюзию объекта). А там где пространство, там отношения и размерности. Проще говоря, когда нет размеров - нет и окон, и столов, и восхитительных дыр в которые можно совать всякое.
Крч, по факту ты хочешь чтобы комп как-то магически угадывал твои мысли и перерабатывал их из бессвязного агуканья в четкие формальные инструкции графического вывода - при актуальном уровне технологий, это невозможно. Вероятно, такое станет возможным после создания настоящего ИИ, и нейроинтерфейса к ЭВМ.
// Есть еще проблема, и она уже неразрешима в контексте задачи: проблема перспективы. Перспектива это такая штука, благодаря которой мы пространственно воспринимаем графическое изображение (путем искажений создавая визуальную иллюзию объекта). А там где пространство, там отношения и размерности. Проще говоря, когда нет размеров - нет и окон, и столов, и восхитительных дыр в которые можно совать всякое.
Елман Сейсенбеков
Я выражался образно, дабы было понятно не только еще не изобретенному ИИ, но малым детям, у которых получилось вырасти, а вот освоить элементарные правила вежливости интеллекта не хватило.
Ну.. PovRay язык без холста...
только он еще и трехмерный, и в нем камеру надо настроить...
только он еще и трехмерный, и в нем камеру надо настроить...
Похожие вопросы
- Существуют резаки для бумаги с различными геометрическими формами?
- Почему существует множество языков программирования чем они отличаются друг от друга в практическом смысле?
- Существует ли язык программирования, основанный на русском языке?
- По C#. Хочу выучить этот язык программирования, но понятия не имею с чего начать. Подскажите с чего можно начать?
- Вопрос по PHP к кодерам. Как сделать поле в форме обратной связи обязательным?
- печать "маслом" на холсте - какие есть технологии, максимально похожие на оригинал
- В какой программе можно разбить фото на цвета и сегменты для переноса на холст.
- У программиста должен быть основной язык программирования, на котором он умеет думать и писать сразу?
- Какой существует самый простой в мире язык программирования?
- Является ли обязательным критерием знание английского языка для программиста?