Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
Kiten

Рисование линии с помощью мыши

31.07.2012, 11:09. Показов 4763. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Я изучаю ассемблер, пока работаю в реальном режиме (использую DOSBox).
Написал простенькую программу для рисования линии. Я не знаю, как это нужно делать, поэтому решил эту задачу по-своему. В общем-то она работает, но если быстро двигать мышкой, то линия прерывистая. И еще. она не реагирует на щелчок мышкой без перемещения.

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
STACKSG SEGMENT PARA STACK 'Stack'
DW 32 DUP(?)
STACKSG ENDS
CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG,SS:STACKSG
BEGIN PROC FAR
mov ax,0013h
int 10h             ;переход в графический режим (320/200)
mov ax,0a000h
mov es,ax
mov ax,00004h
mov cx,160
mov dx,100
int 33h             ;установка положения курсора
mov ax,00001h
int 33h             ;включение курсора мыши
l1:
mov ax,00003h
int 33h
cmp bx,2
jz l2
cmp bx,1
jnz l1
mov ax,320
mul dx
shr cx,1            ;??????????????????????????
add ax,cx
xchg ax,di
mov al,15
mov byte ptr es:[di],al
jmp short l1
l2:
mov ah,10h
int 16h
cmp ah,01h          ;проверка ESC
jz q1
jnz l1              ;если нажать любую клавишу - возврат в основной цикл
q1:
mov ah,00h
mov al,03h
int 10h             ;возврат в текстовый режим
MOV AH,4CH          ;выход в ДОС
INT 21H
BEGIN ENDP
CODESG ENDS
END BEGIN
Скажите, что тут не так? Полагаю, что есть лучший способ реализовать эти задачи. Не судите строго, заранее спасибо
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2012, 11:09
Ответы с готовыми решениями:

Рисование линии при помощи мыши
Здравствуйте! Возникла следующая проблема и буду очень благодарна, если кто-нибудь сможет мне помочь. Необходимо заносить значение оси Х...

Рисование линии при помощи мыши
Добрый вечер. Есть код рисования линии по двум точкам (которые заданы в кач-ве переменных). Хочу эти переменные заполнять координатами...

Рисование прямоугольника с помощью мыши - прерывание
Вот цель работы: Рисование прямоугольника с помощью мыши. Координаты левой верхней вершины определяются нажатием левой кнопки мыши, а...

2
programmer
 Аватар для Thread
2391 / 525 / 69
Регистрация: 01.06.2011
Сообщений: 3,639
31.07.2012, 16:46
Работа с мышью
1
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
04.08.2012, 18:56
Цитата Сообщение от Kiten Посмотреть сообщение
но если быстро двигать мышкой, то линия прерывистая.
не смотрел код, но если он например рисует пиксель под курсором мыши, то не удивительно, что если быстро перемещать мышь, то линия прирывается. Потому что при быстром перемещении "шаг" курсора уже не 1 пиксель, а, например, 10. При очень быстром перемещении шаг может быть 100+ пикселей.

P.S. все вышесказанное относится к современным ОС, но думаю в DOS'е так же.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2012, 18:56
Помогаю со студенческими работами здесь

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

Рисование линии на PictureBox с помощью мыши
Помогите составить пожалуйста!=)Заранее благодарен!! Составить программу решения задачи. Форма содержит элемент PictureBox. По нажатию...

Рисование линии в Panel при движении мыши
Такое задание ... имеем на форме Panel и надо в ней при движении мыши рисовать линию ( ну как мышь ведем и за ней линия следует ) ...

Рисование линии в PictureBox при помощи мыши
Как организовать такую программку: На форме есть picturebox, необходимо мышкой на нем нарисовать произвольную линию. Как это сделать?

Рисование прямой и кривой линии, используя левую кнопку мыши
кто может помочь с программой на с++ для рисовании прямой и кривой линии используя левую кнопку мыши Добавлено через 4 минуты код...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
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
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru