Форум программистов, компьютерный форум, киберфорум
Программирование мультимедиа
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.11.2020
Сообщений: 14

Звуковой сигнал к 3D логотипу

05.01.2021, 16:22. Показов 5304. Ответов 0

Студворк — интернет-сервис помощи студентам
Всем привет.

Нужна помощь от неравнодушных знатоков ассемблера.

К следующему кода нужно добавить функцию, чтобы, обязательно, за счет нажатия мышкой на результат выполнения звучал бы любой звук. Это может быть реализовано как вам удобно.

Просто поставили такую задачу а с звуком я еще не разобралась.

Буду нереально благодарна.

Assembler
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
.586
.model flat,STDCALL
 
  extrn GetModuleHandleA:Proc, ExitProcess:Proc 
  extrn CreateWindowExA:Proc, RegisterClassA:Proc, GetDC:Proc
  extrn DispatchMessageA:Proc, DefWindowProcA:Proc, LoadCursorA:Proc
  extrn ChoosePixelFormat:Proc, SetPixelFormat:Proc, wglCreateContext:Proc
  extrn wglMakeCurrent:Proc, glViewport:Proc, glMatrixMode:Proc
  extrn glEnable:Proc, glLoadIdentity:Proc,gluPerspective:Proc,glClear:Proc
  extrn SwapBuffers:PROC, PeekMessageA:PROC, glVertex3f:Proc, glColor3f:Proc
  extrn glTranslatef:Proc, glRotatef:Proc, glBegin:Proc, glEnd:Proc,glFinish:Proc
  extrn glScalef:Proc
 
 WS_POPUP    EQU 80000000h
 WS_VISIBLE  EQU 10000000h
 WS_CLIPSIBLINGS EQU 04000000h
 WS_CLIPCHILDREN EQU 02000000h
 WM_KEYDOWN  EQU 100h
 PM_REMOVE   EQU 1
 
GL_MODELVIEW                    EQU  1700h
GL_PROJECTION                   EQU  1701h
GL_DEPTH_TEST                   EQU  0B71h
GL_COLOR_BUFFER_BIT     = 00004000h
GL_DEPTH_BUFFER_BIT     = 00000100h
GL_TRIANGLE_FAN     equ  00006h
 
;==========================================
.data
p8q dq 8.0          ; 8и-байтнi константи
p45q    dq 45.0
p1q dq 1.0       
 
p1  dd   1.0        ; 4х-байтнi константи
m1  dd  -1.0
m4  dd  -4.0
 
dt1 dd  0.03    ; крок повороту навколо OY
dt2 dd -0.03    ; крок повороту навколо OZ
r1  dd  0.0     ; кут повороту навколо OY
r2  dd  0.0     ; кут повороту навколо OZ
 
TEMP    dq 0    ; робоча змiнна
 
WndClassName db 'ABBA',0;
 
WC    dd 0023h,offset WndProc,0,0   ; структура WNDCLASS
hInstance dd 0,0
hCursor   dd 0,1,0,offset WndClassName
 
 hWnd   dd 0    ; хендл вiкна
 hDC    dd 0    ; графiчний контекст вiкна
 hRC    dd 0    ; графiчний контекст OpenGL
 
msg dd 0
   msMESSAGE    dd 0
   msWPARAM dd 0,0,0,0,0
 
 width  dd 700      ; розмiри вiкна
 height dd 550
 
PIXELFORMATDESCRIPTOR:
  nSize         dw  28h
  nVersion      dw  2
  dwFlags       dd  25h ; прапорцi для використання OpenGL
  iPixelType        db  0
  cColorBits        db  24  ;16
  cRedBits      db  13 dup(0)
  cDepthBits        db  32  ;16
  cStencilBits      db  16 dup(0)
 
;       R    G    B      R    G    B        R    G    B
COLORS  dd 1.0, 0.2, 0.1,   0.3, 0.1, 0.1,     0.6, 0.2, 1.0
    dd 1.1, 0.6, 0.6,   1.1, 0.1, 0.1,     0.6, 0.6, 1.0
    dd 0.9, 0.6, 0.6,   1.1, 0.8, 0.3,     1.0, 0.6, 1.0
    dd 0.4, 0.7, 0.8,   0.2, 1.0, 1.1,     0.8, 0.5, 0.95
 
;-------------------------------------------------------------------------------- буква "V"
 
ARRAY_OF_POINTS:    ; координати фiгури
;      X    Y    Z       X    Y    Z        X    Y    Z      X    Y    Z
;1 лінія:
   dd 0.1, 1.1, 0.0,    0.3, 0.1, 0.0,    0.3, 0.1, 0.3,    0.1, 1.1, 0.3
 
;2 лінія:
   dd 0.3, 0.1, 0.0,    0.5, 1.1, 0.0,    0.5, 1.1, 0.3,    0.3, 0.1, 0.3
 
 
 
;-------------------------------------------------------------------------------- буква "P"
 
;      X    Y    Z       X    Y    Z        X    Y    Z      X    Y    Z
;1 лінія:
   dd 0.7, 0.1, 0.0,    0.7, 1.1, 0.0,    0.7, 1.1, 0.3,    0.7, 0.1, 0.3
 
;2 лінія:
   dd 0.7, 1.1, 0.0,    1.0, 1.1, 0.0,    1.0, 1.1, 0.3,    0.7, 1.1, 0.3
 
;3 лінія:
   dd 1.0, 1.1, 0.0,    1.2, 0.9, 0.0,    1.2, 0.9, 0.3,    1.0, 1.1, 0.3
 
 
;4 лінія:
   dd 1.2, 0.9, 0.0,    1.1, 0.6, 0.0,    1.1, 0.6, 0.3,    1.2, 0.9, 0.3
 
;5 лінія:
   dd 0.7, 0.6, 0.0,    1.1, 0.6, 0.0,    1.1, 0.6, 0.3,    0.7, 0.6, 0.3
 
 
 
K dd 1.5
 
;================================================
.code
start:  call GetModuleHandleA,0
    mov hInstance,eax
    call LoadCursorA,0,7f00h
    mov  hCursor,eax
    call RegisterClassA, offset WC
 
    call CreateWindowExA,0,eax,0,WS_CLIPSIBLINGS or WS_CLIPCHILDREN \
         or WS_VISIBLE or WS_POPUP,100,100,width,height,0,0,hInstance,0
    mov hWnd,eax
 
    call GetDC, hWnd
    mov hDC,eax
 
    call ChoosePixelFormat, hDC, offset PIXELFORMATDESCRIPTOR
    call SetPixelFormat, hDC,eax,offset PIXELFORMATDESCRIPTOR
    call wglCreateContext, hDC      ; створити графiчний контекст OpenGL
    mov hRC,eax
    call wglMakeCurrent, hDC,eax    ; вибрати дане вiкно для роботи
;===========================================
    call glEnable, GL_DEPTH_TEST    ; об’єкти можуть перетинатись
    call glViewport, 0,0,width,height   ; встановити все вiкно для огляду
    call glMatrixMode, GL_PROJECTION
    call glLoadIdentity ; встановити початковий стан
    fild width
    fild height
    fdivp
    fstp TEMP   ; TEMP = width / height 
 
    push qword ptr p8q  ; вiдстань до кiнця сцени
    push qword ptr p1q  ; вiдстань до початку сцени
    push qword ptr TEMP ; width/height
    push qword ptr p45q ; кут огляду
    call gluPerspective ; встановити параметри спостереження
 
    call glMatrixMode, GL_MODELVIEW
;========================================
MSG_LOOP:
    call DrawGLScene        ; пiдпрограма користувача
    call SwapBuffers,hDC        ; обмiняти вiдео-сторiнки
    call PeekMessageA, offset msg,0,0,0,PM_REMOVE
    or eax,eax
    jz MSG_LOOP
 
    .if  msMESSAGE == WM_KEYDOWN
        cmp msWPARAM,1bh        ; якщо код <ESC>, то STOP
        jz      STOP
    .endif
 
    call DispatchMessageA, offset msg
    jmp MSG_LOOP
 
STOP:   call ExitProcess,0
 
;========================================
DrawGLScene proc
    call glClear, GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT
    call glLoadIdentity ; встановити початковий стан
 
    call glTranslatef, 0,0,m4   ; змiщаємося по OZ
    call glRotatef, r1,0,p1,0   ; повертаємо по OY
    call glRotatef, r2,0,0,p1   ; повертаємо по OZ
    call glTranslatef, m1,0,0   ; змiщаємося по OX
 
 
    call glScalef, K,K,K
 
; завдання розрах
    call glBegin, 7 ; малюємо окремі чотирикутники
    mov ecx,11*4    ; кiлькiсть точок в масивi
    mov esi,offset COLORS
    mov edi,offset ARRAY_OF_POINTS
    L1: pushad
    call glColor3f, dword ptr [esi],dword ptr [esi+4],dword ptr [esi+8]
    call glVertex3f,dword ptr [edi],dword ptr [edi+4],dword ptr [edi+8]
    popad
    add esi,12  ; колiр кожної точки займає 12 байт
    add edi,12  ; координати кожної точки займають 12 байт
    loop L1
    call glEnd  ; закiнчили малювати трикутники
 
    fld r1      ; змiна кута повороту по OY
    fadd dt1
    fstp r1
 
    fld r2      ; змiна кута повороту по OZ
    fadd dt2
    fstp r2
 
    call glFinish   ; закiнчити малювати сцену
    ret
DrawGLScene endp    
;=================================================
 
WndProc proc uses ebx edi esi, hwnd : DWORD, wmsg : DWORD, wparam: DWORD, lparam:DWORD
    call DefWindowProcA,hwnd,wmsg,wparam,lparam
ret
WndProc endp
end start
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2021, 16:22
Ответы с готовыми решениями:

Звуковой сигнал
Иногда в нагрузке компьютер подвисает на секунду, выдает звуковой сигнал из динамиков и продолжает работать. Подскажите в чем может быть...

Звуковой сигнал!
#include &lt;ctime&gt; #include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;string&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include...

звуковой сигнал
Скажите как добавить звуковой сигнал при нажатии кнопки? как прописать путь к звуковому файлу?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.01.2021, 16:22
Помогаю со студенческими работами здесь

Звуковой сигнал 1-5-4-2
Доброго времени суток! Не запускается, даёт сигнал 1-5-4-2. В документации нашёл это При загрузке вы можете получить звуковую...

Звуковой сигнал
Всем привет! При вставке новой записи в таблицу БД на компе должно срабатывать звуковое оповещение (проигрываться мелодия или просто...

Звуковой сигнал в Label
Ребята, нужна Ваша помощь. Дело таково есть проект азбуки Морзе в Forms, есть два массива, один с русскими буквами, а второй аналог русских...

Не подается звуковой сигнал
В общем, должен написать будильник, основную часть сделал, но не подается звуковой сигнал по наступлении заданного времени, скорее всего...

Не работает звуковой сигнал \a
Подскажите новичку. Утром писал вроде все пикало, а щас перестало =( Пишу на Code Blocks 13.12 Например #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
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