Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.60
JerryJackson
50 / 6 / 2
Регистрация: 15.07.2010
Сообщений: 112
#1

Нарисовать шестиугольник - C++

05.11.2012, 21:48. Просмотров 3060. Ответов 10
Метки нет (Все метки)

Здравствуйте!
Помогите пожалуйста не работает программа, необходимо нарисовать шестиугольник с использование прерывания.(10h) Не пойму как с помощью прерывания нарисовать шестиугольник использую функции Line и тд но это неправильно.
Выдает ошибку, что не распознана функция (Undefined linedraw and set320x240)

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
27
28
29
30
#include <stdio.h>
#include <conio.h>
#include <dos.h>
 
#define graphics_mode 0x13
#define bios_video_int 0x10
extern "C"
{
extern void Set320x240Mode();
}
extern void LineDraw(int XStart, int YStart, int XEnd, int YEnd, int Color);
void main()
{
int i,j;
union REGS regset;
regset.x.ax=graphics_mode;
int86(bios_video_int,&regset,&regset);
Set320x240Mode();
for(i=0;i<65;i++)
{
LineDraw(65-i,i,65+i,i,i);
}
for(i=0;i<64;i++)
{
LineDraw(1+i,64+i,127-i,64+i,63-i);
}
getch();
regset.x.ax=0x0003;
int86(0x10, &regset, &regset);
}
Добавлено через 2 минуты
Номер режима HEX 12

Добавлено через 47 секунд
HEX 12 640x480 16 цветный (VGA)

Добавлено через 30 минут
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <conio.h>
#include <dos.h>
 
int main()
{
clrscr();
 
char smode;
 
asm {
mov ah,0xf;
int 0x10;
mov smode,al
 
mov ah,0x0
mov al,0x12
int 0x10
 
mov ah,0xc
mov al,15
mov bh,0
mov cx,600
mov dx,430
int 0x10
}
printf("%c\n",smode);
 
asm {
 
mov ah,0x0
mov al,smode
int 0x10
 
}
 
getch();
 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 21:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нарисовать шестиугольник (C++):

Нарисовать на экране шестиугольник C++
собственно дело вот в чём. есть задача, нарисовать жёлтый шестиугольник с...

Нарисовать правильный шестиугольник, вписанный в окружность, и заставить его крутиться по этой окружности
Здравствуйте форумчане! Помощь нужна, с помощью библиотеки &quot;graphics.h&quot; в Dev...

Графика: Разноцветный шестиугольник
Написать программу, генерирующую на экране разноцветный шестиугольник, цвета...

Построить по 3 точкам выпуклый шестиугольник минимального размера
Доброго времени суток. Большая просьба помочь с кодом. Задача: Даны...

Разработать оконное приложение, которое позволяет рисовать шестиугольник по точкам
Разработать оконное приложение, которое позволяет рисовать шестиугольник по...

Нарисовать шестиугольник
Написать программу, которая вычерчивает на экране шестиугольник. Используйте...

10
Kuzia domovenok
2212 / 1981 / 443
Регистрация: 25.03.2012
Сообщений: 6,950
Записей в блоге: 1
05.11.2012, 21:55 #2
Это ты сам писал?
Похоже ты писал, писал и забыл создать функцию LineDraw.
Так не бывает. Нельзя просто так писать программу и не заметить, что одна из ключевых функций не реализована.
1
JerryJackson
50 / 6 / 2
Регистрация: 15.07.2010
Сообщений: 112
05.11.2012, 22:29  [ТС] #3
LineDraw не надо использовать необходимо нарисовать с помощью прерывания,
LineDraw не нужен надо все в main сделать

Добавлено через 1 минуту
LineDraw я думал типа стд функц использовать
ниже переписал код , но дальше не знаю, что делать максимум выводиться 1 белый пиксель в точке 600 430 если так рисовать шестиугольник то программа будет очень медленно работать
0
Kuzia domovenok
2212 / 1981 / 443
Регистрация: 25.03.2012
Сообщений: 6,950
Записей в блоге: 1
05.11.2012, 22:34 #4
Цитата Сообщение от JerryJackson Посмотреть сообщение
(Undefined linedraw and set320x240)
это тебе сообщение или не тебе? Если не используешь LineDraw? его б не было. Не хочешь использовать LineDraw? Удали её вызовы из всех файлов проекта!
1
JerryJackson
50 / 6 / 2
Регистрация: 15.07.2010
Сообщений: 112
05.11.2012, 22:43  [ТС] #5
я понимаю что функции я не использую я их убрал но как мне дальше с помощью прерывания рисовать
шестиугольник
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
05.11.2012, 22:49 #6
JerryJackson, рисуйте по пикселям.
0
Kuzia domovenok
2212 / 1981 / 443
Регистрация: 25.03.2012
Сообщений: 6,950
Записей в блоге: 1
05.11.2012, 22:54 #7
Цитата Сообщение от JerryJackson Посмотреть сообщение
я понимаю что функции я не использую я их убрал но как мне дальше с помощью прерывания рисовать
шестиугольник
Напиши функцию вывода одной точки (пикселя) с помощью прерывания . Реализуй вывод линии по алгоритму Брезенхема. Выведи 6 линий.
Тебе точно нужна эта морока?
1
JerryJackson
50 / 6 / 2
Регистрация: 15.07.2010
Сообщений: 112
06.11.2012, 01:48  [ТС] #8
а если пикселями программа не медленно будет работать ?

Добавлено через 42 секунды
спасибо всем сейчас попробую реализовать
0
Kuzia domovenok
2212 / 1981 / 443
Регистрация: 25.03.2012
Сообщений: 6,950
Записей в блоге: 1
06.11.2012, 01:49 #9
Цитата Сообщение от JerryJackson Посмотреть сообщение
а если пикселями программа не медленно будет работать ?
Кто ж тебя знает, как те надо и зачем вообще сдались тебе эти досовские прерывания?
1
JerryJackson
50 / 6 / 2
Регистрация: 15.07.2010
Сообщений: 112
06.11.2012, 02:40  [ТС] #10
По заданию надо написать с ассм вставками

Добавлено через 27 секунд
Так бы уже давно нарисовал что необходимо
0
go
Эксперт С++
3636 / 1368 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
06.11.2012, 10:30 #11
Цитата Сообщение от JerryJackson Посмотреть сообщение
а если пикселями программа не медленно будет работать ?
Нет конечно. Делал когда-то нечто подобное на чистом асм, все сносно работало. Вот так линию рисовал параллельную оси Х
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
OutLine proc
    mov ah,0Ch
    mov bh,0
paint:
    mov cx,x1
    mov dx,y1
    
    inc x1
    int 10h
    cmp cx,x2
    jle paint
        ret
 
OutLine endp
1
06.11.2012, 10:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2012, 10:30
Привет! Вот еще темы с решениями:

Нарисовать шестиугольник
Здравствуйте! Помогите пожалуйста не работает программа, необходимо нарисовать...

Нарисовать шестиугольник в консоли
нужно нарисовать шестиугольник используя библиотеку windows.h, вообще не могу...

Модуль GRAPH: нарисовать шестиугольник
Написать программу, которая вычерчивает на экране шестиугольник. Используйте...

Как нарисовать правильный шестиугольник посредством Canvas?
Друзья выручайте, не могу понять как рисовать в С++, нужно по двум кликам...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru