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

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

19.09.2021, 21:24. Показов 4144. Ответов 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
4189 / 2644 / 654
Регистрация: 23.09.2014
Сообщений: 8,905
Записей в блоге: 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
6108 / 2803 / 1038
Регистрация: 01.06.2021
Сообщений: 10,231
19.09.2021, 21:46  [ТС]
XLAT, я как понял писать на Win API это просто жесть. Много кода ради простой фигуры. Да еще и без сглаживания, верт. синхонизации и т.д. Как по мне, легче и эффективнее писать на C# в Unity.
0
Just Do It!
 Аватар для XLAT
4189 / 2644 / 654
Регистрация: 23.09.2014
Сообщений: 8,905
Записей в блоге: 3
19.09.2021, 22:15
Цитата Сообщение от Royal_X Посмотреть сообщение
Да еще и без сглаживания
Status SetSmoothingMode( SmoothingMode smoothingMode );
0
Заблокирован
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
9036 / 2937 / 493
Регистрация: 05.10.2013
Сообщений: 7,961
Записей в блоге: 216
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
6108 / 2803 / 1038
Регистрация: 01.06.2021
Сообщений: 10,231
24.09.2021, 15:59  [ТС]
8Observer8, вообще в Unity не принято програмно создавать с нуля в ходе игры какие-либо объекты. Как правило, делаются префабы, которые спаунятся во время игры с помощью Instantiate. Префаб окружности можно сделать на основе готового векторного рисунка окружности.
1
9036 / 2937 / 493
Регистрация: 05.10.2013
Сообщений: 7,961
Записей в блоге: 216
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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru