Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6180 / 2875 / 1042
Регистрация: 01.06.2021
Сообщений: 10,540

Простейшая графика с использованием GDI Win API

19.09.2021, 21:24. Показов 4153. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как создать с помощью Win API окно определенного размера, в котором нарисовать простейшие геометрические фигуры (круг, прямоугольник, линия, точка и т.д.) определенных размеров и цветов?
Хочу создать часы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.09.2021, 21:24
Ответы с готовыми решениями:

GDI+ WIN API
Ребят все добрый день, Подскажите пожалуйста или поделитесь линком где можно подробнее почитать про GDI+ WIN API на мсдн не могу...

анимация с помощью палитр средствами GDI(Win API) или Buildera
Необходимо сделать анимацию с помощью палитр средствами GDI(Win API) или Buildera, подскажите как это сделать, если можно с примерчиком или...

Простейшая графика в CodeBlocks с использованием Graphics.h
Просто завершается программа =(( Вообще ни одну графическую функцию не выводит... Что может быть?! #include <graphics.h> ...

9
Just Do It!
 Аватар для XLAT
4204 / 2662 / 654
Регистрация: 23.09.2014
Сообщений: 9,045
Записей в блоге: 3
19.09.2021, 21:36
Лучший ответ Сообщение было отмечено Royal_X как решение

Решение

Цитата Сообщение от Royal_X Посмотреть сообщение
Как создать с помощью Win API окно определенного размера, в котором нарисовать простейшие геометрические фигуры
https://www.cyberforum.ru/post15267952.html
https://www.cyberforum.ru/post14892327.html
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6180 / 2875 / 1042
Регистрация: 01.06.2021
Сообщений: 10,540
19.09.2021, 21:46  [ТС]
XLAT, я как понял писать на Win API это просто жесть. Много кода ради простой фигуры. Да еще и без сглаживания, верт. синхонизации и т.д. Как по мне, легче и эффективнее писать на C# в Unity.
0
Just Do It!
 Аватар для XLAT
4204 / 2662 / 654
Регистрация: 23.09.2014
Сообщений: 9,045
Записей в блоге: 3
19.09.2021, 22:15
Цитата Сообщение от Royal_X Посмотреть сообщение
Да еще и без сглаживания
Status SetSmoothingMode( SmoothingMode smoothingMode );
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.09.2021, 22:17
Royal_X, ну ты же программист
Оберни WinApi в классы, используй direct2d, и так далее .

Добавлено через 34 секунды
Цитата Сообщение от Royal_X Посмотреть сообщение
легче и эффективнее писать на C# в Unity.
Да, на движках проще.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
22.09.2021, 13:55
Цитата Сообщение от Royal_X Посмотреть сообщение
я как понял писать на Win API это просто жесть.
Это неправда.
Писать на Win API легко и приятно.
Цитата Сообщение от Royal_X Посмотреть сообщение
Много кода ради простой фигуры.
Это тоже неправда. Рисование прямоугольников, эллипсов, линий — это один вызов функций Rectangle, Ellipse и LineTo.
Цитата Сообщение от Royal_X Посмотреть сообщение
Да еще и без сглаживания
Используем GDI+.
Цитата Сообщение от Royal_X Посмотреть сообщение
верт. синхонизации и т.д.
Потому что те примеры игнорируют эту синхронизацию. Хорошие программы рисуют на HDC в памяти, затем, когда система готова перерисовать окно, в обработчике WM_PAINT копируют рисунок из буфера в окно через BitBlt, а не «когда хочу».
Цитата Сообщение от Royal_X Посмотреть сообщение
Как по мне, легче и эффективнее писать на C# в Unity.
Если вы ходите перейти на трёхмерную графику, DirectX, опенгёл и такое прочее, то вам неизбежно придётся изучать произведение матриц, вершины, постановку камеры, свет, нормали, текстуры, материалы, полигональные сетки и всё такое прочее. Вы уверены что все эти сцены, меши, игровые объекты и скрипты — это легче и проще, чем кружочек, линия и прямоугольничек в GDI?
1
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,966
Записей в блоге: 227
24.09.2021, 13:46
Цитата Сообщение от Royal_X Посмотреть сообщение
эффективнее писать на C# в Unity
Я поискал немного в интернете, но похоже, что Unity не имеет готового API для рисования окружностей. Есть класс для рисования отрезка LineRenderer. С помощь отрезков можно нарисовать окружность: How can I draw a circle in Unity3D?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using UnityEngine;
using System.Collections;
 
public class DrawRadar: MonoBehaviour {
    public float ThetaScale = 0.01 f;
    public float radius = 3 f;
    private int Size;
    private LineRenderer LineDrawer;
    private float Theta = 0 f;
 
    void Start() {
        LineDrawer = GetComponent < LineRenderer > ();
    }
 
    void Update() {
        Theta = 0 f;
        Size = (int)((1 f / ThetaScale) + 1 f);
        LineDrawer.SetVertexCount(Size);
        for (int i = 0; i < Size; i++) {
            Theta += (2.0 f * Mathf.PI * ThetaScale);
            float x = radius * Mathf.Cos(Theta);
            float y = radius * Mathf.Sin(Theta);
            LineDrawer.SetPosition(i, new Vector3(x, y, 0));
        }
    }
}
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6180 / 2875 / 1042
Регистрация: 01.06.2021
Сообщений: 10,540
24.09.2021, 15:59  [ТС]
8Observer8, вообще в Unity не принято програмно создавать с нуля в ходе игры какие-либо объекты. Как правило, делаются префабы, которые спаунятся во время игры с помощью Instantiate. Префаб окружности можно сделать на основе готового векторного рисунка окружности.
1
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,966
Записей в блоге: 227
24.09.2021, 17:06
Цитата Сообщение от Royal_X Посмотреть сообщение
вообще в Unity не принято програмно создавать с нуля в ходе игры какие-либо объекты.
Я хотел написать про это, но забыл. Хотел написать, что 2D и 3D геометрические фигуры можно создать, например, в Blender. А целом, по поводу процедурной генерации контента в играх, как правило - очень редко, но есть определённые игры, где это используется. Я несколько лет назад начинал изучать эту книгу: Procedural Content Generation for Unity Game Development

Описание:

Procedural Content Generation is a process by which game content is developed using computer algorithms, rather than through the manual efforts of game developers. This book teaches readers how to develop algorithms for procedural generation that they can use in their own games. These concepts are put into practice using C# and Unity is used as the game development engine.

This book provides the fundamentals of learning and continued learning using PCG. You'll discover the theory of PCG and the mighty Pseudo Random Number Generator. Random numbers such as die rolls and card drafting provide the chance factor that makes games fun and supplies spontaneity. This book also takes you through the full development of a 2D game.

Starting with level generation, you'll learn how PCG can make the game environment for you. You'll move into item generation and learn the different techniques to procedurally create game items. Thereafter, you'll be guided through the more abstract PCG areas such as scaling difficulty to the player and even generating music! The book helps you set up systems within your games where algorithms create computationally generated levels, art assets, quests, stories, characters, and weapons; these can substantially reduce the burden of manually creating every aspect of the game.

Finally, you'll get to try out your new PCG skills on 3D terrain generation.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
28.09.2021, 10:52
Цитата Сообщение от Royal_X Посмотреть сообщение
я как понял писать на Win API это просто жесть. Много кода ради простой фигуры.
если читать всякую муть от школоты, то да.
а если уметь пользоваться апишкой, то часы создаются кодом в пару сотен строк.
проект на гитхабе с уже готовым конструктором и ресурсами https://github.com/rty65tt/ddclock при желании можно сократить чуть ли не в 2 раза.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2021, 10:52
Помогаю со студенческими работами здесь

Графика Win API
Нужно нарисовать синий прямоугольник в зеленую штриховку, мож кто знает как, помогите

Построение графика в Win Api
Требуется построить график по точкам. Все координаты даны. Не могу найти в пространстве интернета, с помощью каких функций это можно...

win api элементарная графика
nclude&lt;windows.h&gt; #include&lt;string.h&gt; POINT elips,tr1,tr2; const unsigned int TIMER_2SEC = 2; LRESULT CALLBACK WndProc(HWND,...

Создание окна с использованием Win APi
Здравствуйте! Уже несколько дней мучаюсь с такой проблемой: Нужно создать окно с горизонтальной и вертикальной прокруткой. Горизонтальная...

Диалог выбора файла в си с использованием win api
Помогите сделать диалоговое окно для выбора файла при нажатии на кнопку в си с использованием winapi. Уже все обгуглил, или я тупой или не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru