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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Графика в Си под DOS 
:(
    Опции темы
Гость_Александр
Дата 1.11.2005, 18:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здраствуйте!
Учюсь в универе, проходим язык СИ, проги делаем как консольные приложения, запускаешь в окошках DOS. Неподскажите, как красиво оформлять прогу? Чтоб заливка была и так далее. С цветом шрифта я уже понял, а как все другое?
Подскажите! Буду очень благодарен! smile
Может где-нибудь туториал есть?
  Вверх
nikitao
Дата 1.11.2005, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Гость_Александр,ты Паскаль знаешь?Так или иначе есть такой файл graph.h.Синтаксис у него очень похож на паскаливский. smile


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


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Ось какая? Если Винда, то через Console работать нужно. В мсдн посмотри.
Если в ДОСе то можно напряю в видеопамять писать: 0х0В000


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Guest
Дата 1.11.2005, 20:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ребята, вы сразу на профессиональном языке со мной, хотя я только еще ламер!
Подскажите просто код для графики, например для прямоугольника, круги и т.д.
  Вверх
Дрон
Дата 1.11.2005, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


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

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



Цитата(Guest @ 1.11.2005, 20:46)
Подскажите просто код для графики, например для прямоугольника, круги и т.д.

Так а под какую операционную систему-то?

В Си как таковом вообще нет понятия графики.


--------------------
Да. Именно так.
PM   Вверх
Гость_Александр
Дата 2.11.2005, 17:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ОС Windows XP.
Использую программу для компиляции - Turbo C 2.0
Там есть уже готовый заголовочный файл graphics.h
  Вверх
Doc_d0s
Дата 2.11.2005, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



вот тебе программка которая рисует криввые серпинскогоsmile
Код

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


const    NSIZE=256, NWIDTH=640, NHEIGHT=480;

enum corners{D_0=0,D_45,D_90,D_135,D_180,D_225,D_270,D_315};

int x[8]={1,1,0,-1,-1,-1,0,1};
int y[8]={0,1,1,1,0,-1,-1,-1};

int u;

void InitGraph()
{
    int gd=DETECT, gm=2, ec;
    initgraph(&gd,&gm,"E:\\borlandc\\BGI");
    ec=graphresult();
    if(ec!=grOk)
    {
        cout<<"ERROR"<<endl;
        getch();
        exit(1);
    }
}

void A(int i);
void B(int i);
void C(int i);
void D(int i);

void line(int kof, int i)
{
    linerel(i*x[kof],i*y[kof]);
}

void A(int k)
{
    if(k>0)
    {
        A(k-1);line(D_315,u);
        B(k-1);line(D_0,2*u);
        D(k-1);line(D_45,u);
        A(k-1);
    }
}
void B(int k)
{

    if(k>0)
    {
        B(k-1);line(D_225,u);
        C(k-1);line(D_270,2*u);
        A(k-1);line(D_315,u);
        B(k-1);
    }
}
void C(int k)
{

    if(k>0)
    {
        C(k-1);line(D_135,u);
        D(k-1);line(D_180,2*u);
        B(k-1);line(D_225,u);
        C(k-1);
    }
}
void D(int k)
{

    if(k>0)
    {
        D(k-1);line(D_45,u);
        A(k-1);line(D_90,2*u);
        C(k-1);line(D_135,u);
        D(k-1);
    }
}

void main()
{
    InitGraph();
    setcolor(7);
    u=NSIZE/3;
    int x0=NWIDTH/2;
    int y0=NHEIGHT/2+u;
    for(int i=1;i<5;i++)
    {
        x0-=u;
        u/=2;
        y0+=u;
        moveto(x0,y0);
        setcolor(12-i%4);
        A(i);line(D_315,u);
        B(i);line(D_225,u);
        C(i);line(D_135,u);
        D(i);line(D_45,u);
    }
    getch();
    closegraph();
}


или программа рисующая график функцииsmile
Код

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

const    x=640, y=480;

int f1(int n);
int f2(int n);
int is_simple(int x);
int is_perfect(int x);
void coords();
void grafik(int (*f)(int),int n);
void InitGraph();

void main()
{
    InitGraph();
    setcolor(2);
    setbkcolor(0);
    int n;
    int (*funcpointer[2])(int);
    funcpointer[0]=f1;
    funcpointer[1]=f2;
    while(1)
    {
        cleardevice();
        cout<<"Please enter a nuber of the points:\t";
        cin>>n;
        cleardevice();
        if(n>=2 && n<=70)
        {
            coords();
            for(int i=0;i<2;i++)
            {
                setcolor(4+i);
                grafik((funcpointer[i]),n);
                getch();
            }
            break;
        }
        else
            continue;

    }
closegraph();
}

int is_simple(int x)
{
    if(x==0)
        return 1;
    if(x%2==0 && x!=2)
        return 0;
    for(int i=3;i<x;i++)
        if(x%i==0)
            return 0;
    return 1;
}

int is_perfect(int x)
{
    int sum=0;
    if(x==0 || x==1 || x==2)
         return 0;
    for(int i=1;i<x;i++)
    {
        if(!(x%i))
            sum+=i;
    }
    if(sum==x)
        return 1;
    return 0;
}

void InitGraph()
{
    int gd=DETECT, gm=2, ec;
    initgraph(&gd,&gm,"E:\\borlandc\\BGI");
    ec=graphresult();
    if(ec!=grOk)
    {
        cout<<"ERROR"<<endl;
        getch();
        exit(1);
    }
}

int f1(int n)
{
    int i=0;
    int k=0;
    for(;i<=n;i++)
    if(is_simple(i))
        k++;
    return k;
}
int f2(int n)
{
    int i;
    int k=0; rand()
    for(i=0;i<=n;i++)
    if(is_perfect(i))
        k++;
    return k;
}
void grafik(int(*f)(int),int n)
{
    moveto(0,y);
    for(int i=1;i<n;i++)
    {
               circle(6*i,y-f(i)*5-2,1);
    }
}
void coords()
{
    setcolor(2);
    moveto(0,y-2);
    for(int j=0;j<x;j+=6)
    {
        lineto(j,y-2);
        line(j,y-2,j,y-5);
    }
    moveto(0,y-2);
    for(int jj=0;jj<y;jj+=6)
    {
        lineto(1,jj);
        line(1,jj,4,jj);
    }
}



--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
bncom
Дата 2.11.2005, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо большое!
--------------------
"Мы никогда не живем, мы лишь надеемся, что будем жить." Вольтер 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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