0 / 0 / 0
Регистрация: 25.09.2009
Сообщений: 24
1

Рисование линии в видеорежиме

06.11.2009, 10:49. Показов 3636. Ответов 10
Метки нет (Все метки)

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

помогите с этой задачкой поажлуйста....
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2009, 10:49
Ответы с готовыми решениями:

Рисование прямой линии
Сразу, прошу, на алгоритмы типа "Брейзенхема" не посылать. С помощью рекурсии, пытаюсь то что...

Рисование по алгоритму DDA-линии
пытаюсь написать программу, которая выводит прямую у=кх+b по алгоритму DDA-линии(вроде так...

Рисование линии по двут точкам (ЦВЕТ!!!)
Люди подскажите как в этой программе поменять цвет линий. Программа работает по алгоритму...

Вывод 1-го символа вместо строки в видеорежиме
CSEG segment org 100h begin: mov ax,0B800h mov es,ax mov di,0 mov ah,31 mov al,byte ptr...

10
2534 / 830 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
06.11.2009, 11:19 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
.model tiny
.code
org 100h
 
start:
    mov ax,0013h ; включение видеорежима 320x200
    int 10h
    mov ax,0a000h ; сегмент видеопамяти
    mov es,ax
    mov al,07h ; цвет линии
    mov cx,200 ; длина линии 
    xor si,si
l1:
    mov es:[si],al
    add si,321 ; кол-во столбцов + 1
    loop l1
    
    mov ah,1 ; ждем нажатия
    int 21h
    mov ax,3 ; переход в текстовый режим
    int 10h
    ret ; выход
end start
1
247 / 205 / 26
Регистрация: 03.02.2009
Сообщений: 785
06.11.2009, 12:00 3
А можно использовать функцию BIOS для рисования точки в графическом режиме.
0
2534 / 830 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
06.11.2009, 12:53 4
Можно конечно, но по количеству кода получается все-равно примерно столько же.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.model tiny
.code
org 100h
 
start:
    mov ax,0013h ; включение видеорежима 320x200
    int 10h
    xor bx,bx
    mov cx,200
    mov ax,0c07h
l1:
    mov dx,cx
    int 10h
    loop l1
    
    mov ah,1 ; ждем нажатия
    int 21h
    mov ax,3 ; переход в текстовый режим
    int 10h
    ret ; выход
end start
0
247 / 205 / 26
Регистрация: 03.02.2009
Сообщений: 785
06.11.2009, 13:30 5
Согласен.
Но:
а) для новичков это должно быть понятнее;
б) нет такой жесткой привязки к режиму/разрешению...
0
0 / 0 / 0
Регистрация: 25.09.2009
Сообщений: 24
07.11.2009, 00:16  [ТС] 6
СПАСИБО!!!!!!!!!!!!!!!!!1

Добавлено через 25 минут
эта линия выводится под 45градусным углом к горизонту???
0
247 / 205 / 26
Регистрация: 03.02.2009
Сообщений: 785
07.11.2009, 14:42 7
Да.
0
0 / 0 / 0
Регистрация: 25.09.2009
Сообщений: 24
08.11.2009, 12:25  [ТС] 8
а где это в коде написано, просто я прогу запускаю и там не 45градусов к горизонту?
0
2534 / 830 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
08.11.2009, 12:47 9
Нет ну когда я писал, то у меня не было под рукой транспортира, так что плюс-минус 5-10 градусов может быть.

Или может мы с вами имеем разное представление как это должно выглядеть?
Здесь линия строится так. точки 0;0 , 1;1 , 2;2 , ... , 200;200 .
0
247 / 205 / 26
Регистрация: 03.02.2009
Сообщений: 785
08.11.2009, 12:58 10
Рисунок на разрешении 320x200 (а не на квадратном разрешении, типа 200x200), следовательно, изображение будет немного растянуто во горизонтали!

Видимость зависит еще и от монитора!
0
0 / 0 / 0
Регистрация: 25.09.2009
Сообщений: 24
08.11.2009, 17:03  [ТС] 11
спасибо))) вроде врубился))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2009, 17:03

Сколько байтов занимает один пиксель на экране в видеорежиме
Здравствуйте, подскажите, как подсчитать, сколько байтов занимает один пиксель на экране в видео...

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

Рисование линии
Здравствуйте, прошу оказать помощь в выполнении задания. Требуется нарисовать линию: первая точка...

Квадрат в видеорежиме 320*200
Есть вот такая программка, которая рисует квадрат: Что здесь изменить, чтобы квадрат отображался в...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru