Да, именно такVladDod писал(а): Вс мар 24, 2019 7:17 amА как дескрипторы получали?Privet писал(а): Сб мар 23, 2019 11:14 pm Единственная непонятка - треть окна не используется, что не критично.
Код: Выделить всё
hwnd=GetConsoleWindow(); hdc=GetDC(hwnd);
Вопрос по компьютерной графике
- Privet
- Администратор
- Сообщения: 17206
- Зарегистрирован: Вс янв 03, 1999 4:01 am
- Откуда: Redmond, WA
- Контактная информация:
Re: Вопрос по компьютерной графике
Привет.
Privet
- Privet
- Администратор
- Сообщения: 17206
- Зарегистрирован: Вс янв 03, 1999 4:01 am
- Откуда: Redmond, WA
- Контактная информация:
Re: Вопрос по компьютерной графике
Это проявляется только в том, что любое действие с этим окном приводит к его перерисовке и исчезновению картинки, но у меня вывод заведён в цикл, который упирается в getch(). Нажатием нужной клавиши я или перерисовываю картинку, меняю режимы или вообще выхожу. Т.е. стандартный подход. По функциональности нас всё полностью устраивает. Единственная некорректность - окно приходится делать на треть больше, чем это реально требуется.VladDod писал(а): Вс мар 24, 2019 7:26 amЯ - про то же. И это окно имеет свой, (недоступный вам) обработчик событий. Который будет сводить ваши усилия на нет, от любого свистка системы на перерисовку какой либо части собственного окна.
В принципе, я могу легко скорректировать это программно, умножив полученные ширину и высоту окна на 1.5, но я опасаюсь делать чего-то, чего не понимаю. Тогда координаты некоторых точек численно будут за пределами окна. Они рисуются, но мало ли какие сюрпризы могут быть с другим монитором или драйвером. Поэтому, оставил как есть, т.к. качественно для нас это ничего не меняет. Как-то использовать эту лишнюю треть я всё равно не смогу.
Привет.
Privet
- VladDod
- Уже с Приветом
- Сообщения: 56248
- Зарегистрирован: Вс май 06, 2001 4:01 am
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
Re: Вопрос по компьютерной графике
Рисуются за пределами окна "консоли"? Может дескрипторы указывают не на само "окно консоли", а на нечто, созданное системой для запущенного приложения, но не видимого, поскольку не было вызовов визуализации? Я каюсь. в виндовз играться ... уже лет много ... как перестал, но чисто по логике такое возможно?
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
Плавали-Знаем! (C)
VladDod
- Privet
- Администратор
- Сообщения: 17206
- Зарегистрирован: Вс янв 03, 1999 4:01 am
- Откуда: Redmond, WA
- Контактная информация:
Re: Вопрос по компьютерной графике
Вообще, двух мнений на предмет как правильно делать графику, быть не может. У меня лишь конкретный частный случай.
Программа моделирует некий процесс и выводит на печать и в файл результаты. Запускается многократно через bat-файлы с заданными в командной строке параметрами. Прорисовка данных делается только для контроля только в некоторых случаях. На мне висит много работы по расширению модели. Поэтому, тратить время на причёсывание второстепенных функций смысла нет.
В своей среде мы часто вспоминаем поговорку, что, сначала надо сделать гроб, а потом уже кисти.
Программа моделирует некий процесс и выводит на печать и в файл результаты. Запускается многократно через bat-файлы с заданными в командной строке параметрами. Прорисовка данных делается только для контроля только в некоторых случаях. На мне висит много работы по расширению модели. Поэтому, тратить время на причёсывание второстепенных функций смысла нет.
В своей среде мы часто вспоминаем поговорку, что, сначала надо сделать гроб, а потом уже кисти.

Привет.
Privet
- Maw Hogben
- Уже с Приветом
- Сообщения: 34887
- Зарегистрирован: Ср май 07, 2008 11:17 pm
- Откуда: 98101
Re: Вопрос по компьютерной графике
Я понимаю что вы покончили с графикой... Но мне тут опять прислали... Пример. 

У вас нет необходимых прав для просмотра вложений в этом сообщении.
A malenky bit bezoomny she was, you could tell that, through spending her jeezny all on her oddy knocky.
Maw Hogben
- Privet
- Администратор
- Сообщения: 17206
- Зарегистрирован: Вс янв 03, 1999 4:01 am
- Откуда: Redmond, WA
- Контактная информация:
Re: Вопрос по компьютерной графике
Спасибо большое! Сейчас посмотрю.Maw Hogben писал(а): Пн мар 25, 2019 3:35 pm Я понимаю что вы покончили с графикой... Но мне тут опять прислали... Пример.![]()
Программа работает, но проблема несоответствия координат осталась и её желательно решить и понять причину.
Привет.
Privet
- Privet
- Администратор
- Сообщения: 17206
- Зарегистрирован: Вс янв 03, 1999 4:01 am
- Откуда: Redmond, WA
- Контактная информация:
Re: Вопрос по компьютерной графике
Я посмотрел эту программку. Код из неё буквально один в один точно повторяет мой код. Я вставил его как есть в свою программу и он также рисует картинки в первой 2/3 консоли. Чуда не произошло. Проблема остаётся. 

Привет.
Privet
- VladDod
- Уже с Приветом
- Сообщения: 56248
- Зарегистрирован: Вс май 06, 2001 4:01 am
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
Re: Вопрос по компьютерной графике
А если вы меняете размеры окна "консоли". ваша картинка меняет размер пропорционально? Или остается неизменной?
Можно изобразить собственный эмулятор терминала. Вместо "консоли". Не бог весть какая сложность, но зато будет контроль над окном.
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
Плавали-Знаем! (C)
VladDod
- Privet
- Администратор
- Сообщения: 17206
- Зарегистрирован: Вс янв 03, 1999 4:01 am
- Откуда: Redmond, WA
- Контактная информация:
Re: Вопрос по компьютерной графике
Любое изменение размера консоли приводит к перерисовке консоли и исчезновения всего нарисованного. При каждой перерисовке я проверяю текущие размеры консоли и масштабирую рисунок, уменьшая его каждый раз в два раза. Т.е. всё очень просто.
Создать своё окно? Наверное, это было бы правильно, но на сегодня нас это полностью устраивает. Что-то переделывать мне просто некогда.
Привет.
Privet
- VladDod
- Уже с Приветом
- Сообщения: 56248
- Зарегистрирован: Вс май 06, 2001 4:01 am
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
Re: Вопрос по компьютерной графике
Я это и имел ввиду. То есть вариантов не много ... Получается, что GetClientRect(); вас обманывает. Поскольку это библиотечная функция, в которую вы скармливаете адрес структуры для заполнения результатом, ... можно предположить несоответствие переданной структуры, тому, что уже скомпилировано в библиотеке. Я бы тщательно проверил описание этой структуры и ее зависимость от компилятора. Точнее от разрядности компилятора. Может попробовать перекомпилиться с 64 на 32 бита (или наоборот)Privet писал(а): Ср мар 27, 2019 1:17 pm При каждой перерисовке я проверяю текущие размеры консоли и масштабирую рисунок, уменьшая его каждый раз в два раза.
в реале супруги редко бывают друзьями, так как их отношения подпорчены сексом (с)Роза
Плавали-Знаем! (C)
Плавали-Знаем! (C)
VladDod
-
- Уже с Приветом
- Сообщения: 514
- Зарегистрирован: Пт дек 07, 2001 4:01 am
- Откуда: toronto
tau
- Privet
- Администратор
- Сообщения: 17206
- Зарегистрирован: Вс янв 03, 1999 4:01 am
- Откуда: Redmond, WA
- Контактная информация:
Re: Вопрос по компьютерной графике
Не помогает. Скорее всего, это конфигурация пикселов на моём мониторе или, скорее всего, причуды графического драйвера.
Привет.
Privet
- VladDod
- Уже с Приветом
- Сообщения: 56248
- Зарегистрирован: Вс май 06, 2001 4:01 am
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
Re: Вопрос по компьютерной графике
Ну это, наверное проверить можно?
Код: Выделить всё
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)
VladDod
- Flash-04
- Уже с Приветом
- Сообщения: 63430
- Зарегистрирован: Вт ноя 02, 2004 11:31 pm
- Откуда: RU -> Toronto, ON
- Поблагодарили: 1 раз
Re: Вопрос по компьютерной графике
Как хорошо, я на днях выкинул толстенный мануал по Windows графике 
По теме, я бы на dpi грешил. У меня был период когда я писал графическое приложение под Windows. Все графические примитивы там были, никогда с такой проблемой не сталкивался. Но и мониторов высокого разрешения тоже тогда не было. И кстати многие старые win приложения так и работают на новых мониторах: крошечные окошечки и шрифты.

По теме, я бы на dpi грешил. У меня был период когда я писал графическое приложение под Windows. Все графические примитивы там были, никогда с такой проблемой не сталкивался. Но и мониторов высокого разрешения тоже тогда не было. И кстати многие старые win приложения так и работают на новых мониторах: крошечные окошечки и шрифты.
Not everyone believes what I believe but my beliefs do not require them to.
Flash-04
- Privet
- Администратор
- Сообщения: 17206
- Зарегистрирован: Вс янв 03, 1999 4:01 am
- Откуда: Redmond, WA
- Контактная информация:
Re: Вопрос по компьютерной графике
Если я печатаю символы, то я задаю их ширину и высоту. Дальше True type уже сам рисует символ. Т.е. надо полагать, что имеют.
Если это достаточный ответ на Ваш вопрос. Как я говорил, графикой никогда не занимался. Более того, я даже Windows программы писал только при работе на MS. С тех пор все майкрософтизмы постарался забыть напрочь. В некоторых средах это вызывает саркастическую улыбку.

Привет.
Privet
Вернуться в «Вопросы и новости IT»
Перейти
- Форум Привет
- ↳ Общие разделы
- ↳ О жизни
- ↳ Политика
- ↳ Украина
- ↳ Эмиграция
- ↳ Вопросы Истории
- ↳ Возвращение
- ↳ Финансы
- ↳ Канадский Клуб
- ↳ Инвестирование
- ↳ Города и окрестности
- ↳ Прочее
- ↳ Дом. Быт. Семья
- ↳ Наши дети
- ↳ Наши родители
- ↳ Мой дом
- ↳ Продажа и покупка недвижимости
- ↳ Огород
- ↳ Ремонт и строительство
- ↳ Мастерская
- ↳ Здоровье
- ↳ Кулинария
- ↳ Фитнес
- ↳ Шоппинг
- ↳ Работа. Карьера. Образование
- ↳ Работа и Карьера в IT
- ↳ Образование
- ↳ Карьера и Работа
- ↳ Пенсии
- ↳ Вопросы и новости IT
- ↳ Английский язык
- ↳ Русский и другие языки
- ↳ Малый бизнес
- ↳ Хобби. Досуг. Искусство
- ↳ Путешествия
- ↳ Наука и Жизнь
- ↳ Отдых и Cпорт
- ↳ Авиация, космонавтика, мореплавание
- ↳ Фото-Видео
- ↳ Головоломки
- ↳ Литература и Искусство
- ↳ О братьях наших меньших
- ↳ Воспоминания
- ↳ Юмор, шутки
- ↳ Об оружии
- ↳ Электроника
- ↳ Автомобили
- ↳ За рулём
- ↳ Административные вопросы
- ↳ Матчасть
- ↳ Техника вождения
- ↳ Разделы по интересам
- ↳ О религии
- ↳ По ту сторону разума
- ↳ Разное
- ↳ Ищу друзей
- ↳ Объявления
- ↳ Анти-Реклама
- ↳ Архив