singlepost

графика на языке Си << На главную или назад  

люди подскажите какую библиотеку нужно включить, чтобы вызывать функции типа initgr(); move(x,y);draw(x,y);endgr();…или что нужно вообще сделать, чтоб заработало)
нашел многообещающую книженцию, но на первом примере пишут ошибки…
[C++ Warning] Unit1.c(15): W8065 Call to function 'move' with no prototype
[Linker Error] Unresolved external '_move' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
(так с каждой вышеописаной функцией)
<code>
main()
{
float xA,yA,xB,yB,xC,yC,xD,yD,
xxA,yyA,xxB,yyB,xxC,yyC,xxD,yyD,p,q;
int i;
p=0.95;
q=1.0-p;
xA=2.0;xB=8.0;xC=8.0;xD=2.0;
yA=0.5;yB=0.5;yC=6.5;yD=6.5;
initgr();
for (i=0;i<50;i++)
{
move(xA,yA);
draw(xB,yB);draw(xC,yC);draw(xD,yD);draw(xA,yA);
xxA=p*xA+q*xB;yyA=p*yA+q*yB;xxB=p*xB+q*xC;yyB=p*yB+q*yC;
xxC=p*xC+q*xD;yyC=p*yC+q*yD;xxD=p*xD+q*xA;yyD=p*yD+q*yA;
xA=xxA;xB=xxB;xC=xxC;xD=xxD;
yA=yyA;yB=yyB;yC=yyC;yD=yyD;
}
endgr();
}
</code>
использую билдер 6

30 ответов в теме “графика на языке Си”

  1. 17
    Фёдор Бобков ответил:

    мне б знать

  2. 16
    Фёдор Бобков ответил:

    О круто

  3. 15
    Андрей Соломонов ответил:

    я об этом думал… ну как я понимаю это будет только единственное решение.. )

  4. 14
    Сергей Старовой ответил:

    Можно. Написать свою функцию inputtext которая будет рисовать на экране строчку вводимую пользователем )

  5. 13
    Андрей Соломонов ответил:

    спасиб)
    а еще вопросик, можно как то работать с пользователем в BGI режиме(или как оно правильно называется.. поправьте :) ), т.е. чтоб пользователь мог вводить какие то даннные.. вывести текст на экран то можно, с помощью outtext…заранее спасибо )

  6. 12
    Анатолий Свириденков ответил:

    В консоли графика работать не будет, там текстовый режим, там возможна только псевдографика. Для работы с BGI нужно будет работать в DOS со всеми вытекающими.

    Доки по BGI – //www.cs.colorado.edu/~main/bgi/doc/

    Для работы с ним нужно иметь еще и либу для него.

  7. 11
    Анатолий Свириденков ответил:

    Чтобы узнать как все начиналось надо почитать что-нибудь про CGA режим. BGI это весьма простенькая библиотек и сейчас существует практически эквивалентная ей GDI, от последней хоть какая-то польза и с билдером она совместима.

  8. 10
    Андрей Соломонов ответил:

    у меня хоть сейчас есть желание учить все с чего начиналось.. сначало консоль, потом уже в визуальную форму перейти..
    но это как я понял полнейшая древность)..лучше за неё не братся.. ))
    ну так… тогда кто как учил графику?)

  9. 9
    Дмитрий Гайдамович ответил:

    Это, по-моему, для BGI. Был у Борланда такой интерфейс для графики, в древности.

  10. 8
    Андрей Соломонов ответил:

    а вообще кто то может порекомендовать книжку где обьясняется графига в турбо си ну или еще лучше в консоли билдера..
    а то, то что я нашел там какие то непонятные функции берутся..
    ладно эти move и draw заменил на moveto и lineto…
    но дальше там появляются pmove, pdraw…. и что с ними делать я беспонятии… непонятно для какого компилятора книга была предусмотренна…

  11. 7
    Артём Шалхаков ответил:

    Напиши свое, это несложно. Заодно и разберешься что, как и откуда. А если не хочешь — бери Cairo, но там жуткий интерфейс.

  12. 6
    Анатолий Свириденков ответил:

    А зачем такие изыски? В билдере вроде были компоненты позволяющие рисовать графики.
    В консоли initgr работать не будет, в Borland C тоже требовалось переходить в графический режим, что initgr и делала.

  13. 5
    Артём Суханов ответил:

    Да, одно и то же.

  14. 4
    Андрей Соломонов ответил:

    ну я вот пытаюсь делать все из консоли…graphics.h – компилятор вооще не знает этой библиотеки..
    а тогда такой вопрос.. турбо С и турбо С++ одно и тоже?)
    а то без плюсов что то прям как будто пропали…

  15. 3
    Андрей Соломонов ответил:

    а каким образом можно реализовать это в билдере?
    или лучше для Си использовать турбо С?)

  16. 2
    Артём Суханов ответил:

    В Билдере есть режимы совместимости с классическим Си. В консоли – не знаю, не пробовал (попробуйте подключить graphics.h), а так у объектов типа canvas есть методы moveto(int, int), lineto(int, int) или подобные.

  17. 1
    Артём Суханов ответил:

    В Turbo C 3.0 был graphics.h, в нем были initgraph(int, int, char*), moveto(int, int), lineto(int, int) и т.п. Вроде в K&R C тоже самое.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.