Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Графика в С под ДОС 
:(
    Опции темы
kostyantmb
Дата 3.10.2005, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 1.12.2004

Репутация: нет
Всего: нет



Первый раз столкнулся с этим, всё не так как в Паскале.

Подскажите, как нарисовать например прямоугольник с красной заливкой в середине экрана например 100х100?
PM MAIL   Вверх
BreakPointMAN
Дата 3.10.2005, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 14
Всего: 24



Какая среда? Turbo C++ 3 Borland'овская или еще что-то?


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
kostyantmb
Дата 3.10.2005, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 1.12.2004

Репутация: нет
Всего: нет



Да
PM MAIL   Вверх
nikitao
Дата 3.10.2005, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 1
Всего: 26



http://adept7.narod.ru/library/programming...p/winapi/6.html
Возможно это немного удольвотворит твои потребности,если нет ,то уж извени. smile


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
BreakPointMAN
Дата 3.10.2005, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 14
Всего: 24



Цитата(nikitao @ 3.10.2005, 22:37)
http://adept7.narod.ru/library/programming...p/winapi/6.html
Возможно это немного удольвотворит твои потребности,если нет ,то уж извени. 

nikitao, это под Win...


kostyantmb
В принципе, с Turbo C++ 3 поставляется справка, в ней есть подробное описание и примеры, как работать с графическим режимом.
Ну, если кратко, то...
- для начала ты должен убедиться, что в диалоге Libraries, вызываемом через меню Options ==> Linker ==> Libraries, стоит галка напротив "Graphics library", а если не стоит, то установить ее...
- в самой программе подключить заголовочный файл graphics.h c помощью директивы препроцессора #include:
Код

#include <graphics.h>

- далее почитай в help'е справку по функциям initgraph (используется для инициализации графического режима), closegraph (в противоположность первой, используется для закрытия графического режима), функции setcolor, line, putpixel и т.п.

Писать если подробно - долго, в помощь тебе Яndex и Google... могу только кинуть две программки, которые я у себя откопал - когда-то тыркался под сей средой...

Добавлено @ 23:30
Вот, 1st:
Код

#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <dos.h>

void main()
   {
    int dr=VGA, mod=VGAHI; // vybrat' BGI-drajver i graficheskij rezhim
    initgraph(&dr,&mod,"bgi"); // inicializacija grafiki

    randomize(); // inicializacija generatora sluchajnykh chisel
    float x1,x2,y2;

    for(x1=0;x1<320;x1++)
       {
    x2 = 240 + 200 * sin(x1 / 30);
    y2 = 216 + 240 * cos(x1 / 30);
    setcolor(rand()%32);
    line(x1,240,x2,y2);
    delay(25);
       }
    getch();
    closegraph();
   }


и 2nd:

Код

#include <graphics.h>
#include <conio.h>
#include <stdlib.h>

void main()
   {
    int dr=VGA, mod=VGAHI; // vybrat' BGI-drajver i graficheskij rezhim
    initgraph(&dr,&mod,"bgi"); // inicializacija grafiki

    randomize(); // inicializacija generatora sluchajnykh chisel

    float r,a,b,c,d,e,f,newx,newy,x=0,y=0; // budem ispol'zovat' dal'she

    while(!kbhit()) // poka ne nazhata nikakaja klavisha...
       {
    //    Prisvoit' znachenija velichinam a, b, c, d, e i f, iskhodja iz verojatnostej
    // affinnykh preobrazovanij, ispol'zuemykh dlja postroenija izobrazhenija
    // paporotnika

    r = (float(rand()%100))/100;
    if (r <= .01)
       {
        a = 0; b = 0; c = 0; d = .16; e = 0; f = 0;
       }
    else if(r > .1 && r <= .86)
       {
        a = .85; b = .04; c = -.04; d = .85; e = 0; f = 1.6;
       }
    else if (r > .86 && r < .93)
       {
        a = .2; b = -.26; c = .23; d = .23; e = 0; f = 1.6;
       }
    else
       {
        a = -.15; b = .28; c = .26; d = .24; e = 0; f = .44;
       }
    //    Vychislit' novye znachenija x i y i, posle peremasshtabirovanija,
    // vyvesti tochku na ehkran
    newx = (a * x) + (b * y) + e;
    newy = (c * x) + (d * y) + f;
    x = newx;
    y = newy;
    putpixel((x+4)*63.9, 480-y*48.9, 2);
       }
       if(!getch())getch(); // sbros klaviaturnogo bufera
       closegraph();
   }


Это сообщение отредактировал(а) BreakPointMAN - 3.10.2005, 23:33


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
Гость_Teo
Дата 4.10.2005, 00:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как раз-таки, графическая библиотека в С и в Паскале одинаковая.
Следовательно, все функции одинаковы. smile

Выглядить будет примерно так:
Код

                ...
                /*Инициализируем графический режим*/
                int gdriver=DETECT , gmode, errorcode;
    initgraph(&gdriver, &gmode,"");
    errorcode = graphresult();
    if (errorcode != grOk)
    {
        printf("Ошибка \n");
        printf("%s",grapherrormsg(errorcode));
    }
                ...
                /*Рисуем прямоугольник*/
                Rectangle(x1, y1, x2, y2); 
               /*Закрашиваем его в красный*/
               FloodFill(x1+1, y1+1, RED);


  Вверх
Гость_Teo
Дата 4.10.2005, 00:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Тьфу! Весь код криво написал! Извиняюсь.
Спрашивай, постараюсь помочь. Сам помню с этим разбирался на первом курсе smile
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.