Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
NevroZ

Программа в досе определяет мышь и рисует линии от предидущего щелчка к следующему

13.06.2012, 19:37. Показов 796. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообще прошу помощи по написанию программы, точнее если быть точным по дописанию.
Собственно программа в досе определяет мышь и рисует линии от предидущего щелчка к следующему. Посредством нажатия левой кнопки мыши. Нужно дописать что бы нажатием правой кнопки мыши она стирала эту линию.
Вот листинг исходника к нему надо дописать.

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
; Рисует на экране прямые линии, оканчивающиеся в позициях, которые указываются 
; мышью.
.model  tiny 
.code
org    100h 
.186 
start:
mov    ax,12h
int    10h 
mov   ax,0 
int    33h 
mov   ax,1 
int   33h
mov ax,000Ch
mov cx,0002h
mov dx,offset handler
int 33h
mov ah,0
int 16h
mov ax,000Ch
mov cx,0000h
int 33h
mov ax,3
int 10h 
ret
handler:
push 0A000h
pop cs
push cs
pop ds
push cx
push dx
mov    ax,2 
int    33h
cmp    word ptr previous_X,-1 
je    first_point
call   line_bresenham
exit_handler:
pop   dx
pop   cx
mov    previous_X,cx
mov    previous_Y,dx
mov   ax, 1 
int    33h
retf
first_point:
call   putpixel1b
jmp   short exit_handler
line_bresenham:
mov ax, сx
sub ax,previous_X
jns dx_pos
neg ax
mov word ptr X_increment, 1
jmp short dx_neg
dx_pos: mov word ptr X_increment, -1
dx_neg: mov bx,dx
sub bx,previous_Y
jns dy_pos
neg bx
mov word ptr Y_increment, 1
jmp short dy_neg
dy_pos: mov word ptr Y_increment,-1 
dy_neg:
shl ax,1
shl bx,1
call   putpixel1b
cmp ax,bx
jna dx_le_dy
mov di,ax
shr di,1
neg di
add di,bx 
cycle:
cmp ex,word ptr previous_X
je exit_bres
cmp di,0
jl fractlt0
add dx,word ptr Y_increment 
sub di,ax            
fractlt0:
add сx,word ptr X_increment 
add di,bx            
call putpixel1b     
jmp short cycle
dx_le_dy: :
mov di,bx              
shr di,1
neg di             
add di,ax           
cycle2: '.
cmp dx,word ptr previous_Y
je exit_bres         
cmp di,0              
jl fractlt02          
add cx,word ptr X_increment 
sub di,bx
fractlt02: 
add dx,word ptr Y_increment
add di,ax
call putpixel1b        
jmp short cycle2        
exit_bres: 
ret
Putpixel1b:
pusha 
xor bx,bx            
mov ax,dx         
imul ax, ax,80       
push cx
shr cx,3         
add ax,cx         
mov di,ax         
mov si,di         
pop cx     
mov bx,0080h
and cx,07h 
shr bx,cl        
lods   es:byte ptr some_label 
or    ax,bx
stosb
popa
ret
previous_X  dw  -1 
previous_Y  dw  -1 
Y_increment     dw  -1 
X_increment     dw  -1 
Some_label:
end         start
Добавлено через 46 секунд
АП АП АП АП
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2012, 19:37
Ответы с готовыми решениями:

USB не определяет флешки, но определяет мышь и клавиатуру
Доброго времени суток всем! У меня такой вопрос с недавних пор мои усб входа перестали определять флешки, но усб клаву и мышь видят. в чем...

При нажатии клавиши в досе программа обрывается
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> int main () {

Не рисует линии
Как с помощью memDC нарисовать линии? Функция работает через dc. Попробовал переделать для рисование в памяти, программа запускается но...

2
13.06.2012, 19:39
 Комментарий администратора 
здесь Вам не чат. ждите.
можете правила пока почитать сходить...
0
NevroZ
14.06.2012, 09:05
Извините.

Добавлено через 13 часов 24 минуты
ап ап ап ап ап ап
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2012, 09:05
Помогаю со студенческими работами здесь

Не рисует линии на Canvas
Доброго времени суток! :good: Пытаюсь заставить рисовать линии на Canvas, когда зажимаю кнопку мыши и вожу по нему. Продебажил, в...

Не рисует линии js+events
Доброго времени суток! :good: Пытаюсь заставить рисовать линии на Canvas, когда зажимаю кнопку мыши и вожу по нему (по сути аналог...

TChart рисует квадратные линии
Кто-нибудь знает какое свойство нужно поменять чтобы чарт рисовал нормальные линии? double _x = Form2->getA(); double b =...

Вместо круга рисует бесконечные линии
Здравствуйте! Я столкнулась с проблемой при моделировании. У меня 2008 версия программы. Нужно начертить круг в прямоугольнике, но...

QGraphicsScene - addRect не рисует при изменении ширины линии
Хочу перекрасить рамку прямоугольника в другой цвет. Делаю это так: void CuttingMapScene::allocateCell(QRectF cell, Qt::GlobalColor...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru