Да, именно такVladDod wrote: 24 Mar 2019 12:17А как дескрипторы получали?Privet wrote: 24 Mar 2019 04:14 Единственная непонятка - треть окна не используется, что не критично.
Code: Select all
hwnd=GetConsoleWindow(); hdc=GetDC(hwnd);
Вопрос по компьютерной графике
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос по компьютерной графике
Привет.
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос по компьютерной графике
Это проявляется только в том, что любое действие с этим окном приводит к его перерисовке и исчезновению картинки, но у меня вывод заведён в цикл, который упирается в getch(). Нажатием нужной клавиши я или перерисовываю картинку, меняю режимы или вообще выхожу. Т.е. стандартный подход. По функциональности нас всё полностью устраивает. Единственная некорректность - окно приходится делать на треть больше, чем это реально требуется.VladDod wrote: 24 Mar 2019 12:26Я - про то же. И это окно имеет свой, (недоступный вам) обработчик событий. Который будет сводить ваши усилия на нет, от любого свистка системы на перерисовку какой либо части собственного окна.
В принципе, я могу легко скорректировать это программно, умножив полученные ширину и высоту окна на 1.5, но я опасаюсь делать чего-то, чего не понимаю. Тогда координаты некоторых точек численно будут за пределами окна. Они рисуются, но мало ли какие сюрпризы могут быть с другим монитором или драйвером. Поэтому, оставил как есть, т.к. качественно для нас это ничего не меняет. Как-то использовать эту лишнюю треть я всё равно не смогу.
Привет.
-
- Уже с Приветом
- Posts: 56202
- Joined: 06 May 2001 09:01
Re: Вопрос по компьютерной графике
Рисуются за пределами окна "консоли"? Может дескрипторы указывают не на само "окно консоли", а на нечто, созданное системой для запущенного приложения, но не видимого, поскольку не было вызовов визуализации? Я каюсь. в виндовз играться ... уже лет много ... как перестал, но чисто по логике такое возможно?
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
Плавали-Знаем! (C)
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос по компьютерной графике
Вообще, двух мнений на предмет как правильно делать графику, быть не может. У меня лишь конкретный частный случай.
Программа моделирует некий процесс и выводит на печать и в файл результаты. Запускается многократно через bat-файлы с заданными в командной строке параметрами. Прорисовка данных делается только для контроля только в некоторых случаях. На мне висит много работы по расширению модели. Поэтому, тратить время на причёсывание второстепенных функций смысла нет.
В своей среде мы часто вспоминаем поговорку, что, сначала надо сделать гроб, а потом уже кисти.![Smile :)](./images/smilies/icon_smile.gif)
Программа моделирует некий процесс и выводит на печать и в файл результаты. Запускается многократно через bat-файлы с заданными в командной строке параметрами. Прорисовка данных делается только для контроля только в некоторых случаях. На мне висит много работы по расширению модели. Поэтому, тратить время на причёсывание второстепенных функций смысла нет.
В своей среде мы часто вспоминаем поговорку, что, сначала надо сделать гроб, а потом уже кисти.
![Smile :)](./images/smilies/icon_smile.gif)
Привет.
-
- Уже с Приветом
- Posts: 34887
- Joined: 08 May 2008 04:17
- Location: 98101
Re: Вопрос по компьютерной графике
Я понимаю что вы покончили с графикой... Но мне тут опять прислали... Пример. ![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
You do not have the required permissions to view the files attached to this post.
A malenky bit bezoomny she was, you could tell that, through spending her jeezny all on her oddy knocky.
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос по компьютерной графике
Спасибо большое! Сейчас посмотрю.Maw Hogben wrote: 25 Mar 2019 20:35 Я понимаю что вы покончили с графикой... Но мне тут опять прислали... Пример.![]()
Программа работает, но проблема несоответствия координат осталась и её желательно решить и понять причину.
Привет.
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос по компьютерной графике
Я посмотрел эту программку. Код из неё буквально один в один точно повторяет мой код. Я вставил его как есть в свою программу и он также рисует картинки в первой 2/3 консоли. Чуда не произошло. Проблема остаётся. ![Sad :(](./images/smilies/sad.gif)
![Sad :(](./images/smilies/sad.gif)
Привет.
-
- Уже с Приветом
- Posts: 56202
- Joined: 06 May 2001 09:01
Re: Вопрос по компьютерной графике
А если вы меняете размеры окна "консоли". ваша картинка меняет размер пропорционально? Или остается неизменной?
Можно изобразить собственный эмулятор терминала. Вместо "консоли". Не бог весть какая сложность, но зато будет контроль над окном.
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
Плавали-Знаем! (C)
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос по компьютерной графике
Любое изменение размера консоли приводит к перерисовке консоли и исчезновения всего нарисованного. При каждой перерисовке я проверяю текущие размеры консоли и масштабирую рисунок, уменьшая его каждый раз в два раза. Т.е. всё очень просто.
Создать своё окно? Наверное, это было бы правильно, но на сегодня нас это полностью устраивает. Что-то переделывать мне просто некогда.
Привет.
-
- Уже с Приветом
- Posts: 56202
- Joined: 06 May 2001 09:01
Re: Вопрос по компьютерной графике
Я это и имел ввиду. То есть вариантов не много ... Получается, что GetClientRect(); вас обманывает. Поскольку это библиотечная функция, в которую вы скармливаете адрес структуры для заполнения результатом, ... можно предположить несоответствие переданной структуры, тому, что уже скомпилировано в библиотеке. Я бы тщательно проверил описание этой структуры и ее зависимость от компилятора. Точнее от разрядности компилятора. Может попробовать перекомпилиться с 64 на 32 бита (или наоборот)Privet wrote: 27 Mar 2019 18:17 При каждой перерисовке я проверяю текущие размеры консоли и масштабирую рисунок, уменьшая его каждый раз в два раза.
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
Плавали-Знаем! (C)
-
- Уже с Приветом
- Posts: 514
- Joined: 07 Dec 2001 10:01
- Location: toronto
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос по компьютерной графике
Не помогает. Скорее всего, это конфигурация пикселов на моём мониторе или, скорее всего, причуды графического драйвера.
Привет.
-
- Уже с Приветом
- Posts: 56202
- Joined: 06 May 2001 09:01
Re: Вопрос по компьютерной графике
Ну это, наверное проверить можно?
Code: Select all
GetClientRect (hWnd, &rc);
w = rc.right;
h = rc.bottom;
POINT point, zero;
zero.x=zero.y=0;
point.x = rc.right;
point.y = rc.bottom;
if( ClientToScreen(hWnd, &zero) )
if( ClientToScreen(hWnd, &point) )
{
w = point.x-zero.x;
h = point.y-zero.y;
}
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
Плавали-Знаем! (C)
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: Вопрос по компьютерной графике
Как хорошо, я на днях выкинул толстенный мануал по Windows графике ![Cool 8)](./images/smilies/dirol.gif)
По теме, я бы на dpi грешил. У меня был период когда я писал графическое приложение под Windows. Все графические примитивы там были, никогда с такой проблемой не сталкивался. Но и мониторов высокого разрешения тоже тогда не было. И кстати многие старые win приложения так и работают на новых мониторах: крошечные окошечки и шрифты.
![Cool 8)](./images/smilies/dirol.gif)
По теме, я бы на dpi грешил. У меня был период когда я писал графическое приложение под Windows. Все графические примитивы там были, никогда с такой проблемой не сталкивался. Но и мониторов высокого разрешения тоже тогда не было. И кстати многие старые win приложения так и работают на новых мониторах: крошечные окошечки и шрифты.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Администратор
- Posts: 17204
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Re: Вопрос по компьютерной графике
Если я печатаю символы, то я задаю их ширину и высоту. Дальше True type уже сам рисует символ. Т.е. надо полагать, что имеют.
Если это достаточный ответ на Ваш вопрос. Как я говорил, графикой никогда не занимался. Более того, я даже Windows программы писал только при работе на MS. С тех пор все майкрософтизмы постарался забыть напрочь. В некоторых средах это вызывает саркастическую улыбку.
![Smile :)](./images/smilies/icon_smile.gif)
Привет.