![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_Дмитрий |
|
|||
|
Unregistered |
Здравствуйте.
По учебе задали построение эвольвент через классы. При подключении к borland 3.1 graphics.h, он начинает ругаться, что initgraph, setcolor, и др. функции из "с" неопознаются. В Visual c++ вообще не поддерживается эта библиотека. Подскажите пожалуйста как можно в с++ программно рисовать. И где это проще сделать в borland или в visual? p.s. время поджимает, если можно расскажите поконкретней пожалуйста. |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
Дмитрий, сначала определись со средой, в которой ты хочешь программу написать... С графикой можно везде работать, правда, подходы везде будут разные... Ибо в понятие языка C++ понятие графики как таковой не входит, рисование обеспечивается либо средствами операционной системы, либо графическими библиотеками конкретных сред...
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| BreakPointMAN |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
А ты уверен, что все настройки среды корректны? Должны быть верно прописаны все пути (где-то примерно в Options==>Directories... поля "Include Directories" и "Library Directories" или как-то так...) !!! Должна быть подключена библиотека графическая (Options==>Linker==>Libraries... и там галочка напротив "Graphics library" или около того...) bgi-файл должен лежать в той же папке, что и откомпилированная программа, либо путь к нему должен быть явно указан:
Поищи на этом форуме, часто очень поднимаются темы насчет программирования графики - были уже и исходные коды программ, и советы разные... -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
||||
|
|||||
| Гость_Дмитрий |
|
|||
|
Unregistered |
2 BreakPointMAN: как я могу определиться со средой, если я не знаю особенностей этих сред?
Я могу сделать программу на с, которая будет строить то что мне нужно. Но мне задали сделать такую программу с использованием классов в с++. Можно сделать и с помощью visual, но эту программу я впервые открыл вчера, так что не очень предтавляю как с ней работать. Класс у меня должен осуществлять такие действия: В соответствии с введенным числом l (длиной графика) и числом n особенностей графика (типа числа линий в ломанной) строить этот самый график. Дайте хоть какую-нибудь информацию по любой из сред (borland/visual) |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
Вообще говоря, есть такая замечательная вещь, как поиск... Не ленимся его использовать. А вообще, ИМХО, начинающему будет проще работать с графикой в среде Borland C++ Builder, но это только ИМХО. -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
2 BreakPointMAN: Большое спасибо. выручил.
пришлось правда немного повозиться и скопировать egavga.bgi в bin (непонятно зачем). |
|||
|
||||
| Wird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
Здравствуйте.
Учусь на с++. Как картинку с экрана отправить в файл, а потом оттуда извлечь? Помогите плз |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
| Wird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
bc3.11
рисуешь в с чего-нибудь, пихаешь в файл, и так далее а потом по счётчику извлекаешь определённый образ с getimage и putimage вроде ясно, а вот как потом из буфера в правильном формате в файл засунуть, а потом извлечь(и при этом на экране возникла нужная картинка, а не что-то ещё) Это сообщение отредактировал(а) Wird - 27.12.2006, 23:18 |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
| Wird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
пойдём другим путём
прога что-то записывает в txt, а извлекает бред #include<graphics.h> #include<stdlib.h> #include <stdio.h> #include <io.h> #include <dos.h> #include <errno.h> #include <alloc.h> #include <conio.h> #include <FCNTL.H> #define MAXSIZE 10 int count; int maxx, maxy; void far *ptr; int init_lib() { int fd = open ("D:\\TC\\@\\LIB.txt", O_WRONLY); if (fd < 0) { printf ("ЋиЁЎЄ ЇаЁ ®вЄалвЁЁ д ©« (Є®¤ %d)\nexiting...\n", errno); return errno; } count = 0; lseek(fd, 0, 0); write (fd, &count, sizeof(count)); // § Єалў Ґ¬ д ©« close (fd); return 0; } void push(int x1, int x2, int y1, int y2, void far *buf) { if(!(count==MAXSIZE)) { int fd = open ("D:\\TC\\@\\LIB.txt", O_RDWR); unsigned size; size = imagesize(x1, y1, x2, y2); if ((buf = farmalloc(size)) == NULL) { closegraph(); printf("Error: not enough heap space in save_screen().\n"); exit(1); } getimage(x1, y1, x2, y2, buf); lseek(fd, 0L, SEEK_END); write (fd, &size ,sizeof(size)); write (fd, &buf, size); count++; close (fd); } else { printf("Net mesta!\n"); exit(0); } } void show(int num, int x, int y, void far *buf){ int fd = open ("D:\\TC\\@\\LIB.txt", O_RDWR); int i=0; unsigned size; lseek(fd, sizeof(count), 0); for(i = 1; i < num; i++){ read(fd, &size, 2); lseek(fd, 2, 1); lseek(fd, size, 1); } read(fd, &size, 2); lseek(fd, 2, 1); /*if ((buf = farmalloc(size)) == NULL) { closegraph(); printf("Error: not enough heap space in save_screen().\n"); exit(1); } */ read(fd, &buf, size); putimage(x, y, buf, COPY_PUT); } void main() { int gdriver=DETECT, gmode, errorcode; // int fd = open("D:\\TC\\@\\LIB.txt", O_RDWR); /* auto-detect the graphics driver and mode */ initgraph(&gdriver, &gmode, "d:\\TC\\bgi"); errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } scanf("%d %d", &maxx, &maxy); cleardevice(); rectangle(0, 0, maxx, maxy); line(0, 0, maxx, maxy); line(0, maxy, maxx, 0); // if (read(fd, 1, 1)==EOF) init_lib(); // close(fd); push(0, 0, maxx, maxy, ptr); /* save the current screen */ getch(); /* pause screen */ cleardevice(); getch(); show(1, 20, 30, ptr);/* restore the screen */ getch(); /* pause screen */ closegraph(); } |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
во-первых существует кнопка "код" вверху окна ввода, во вторых код плохо читаем, например
lseek(fd, 2, 1); что такое 1? наверное SEEK_CUR, как думаете, какой вариант удобнее для восприятия, ваш или такой: lseek(fd, sizeof(size), SEEK_CUR); ну и догадки:
и где проверка ошибок чтения\записи? все можно (и даже нужно) держать под контролем |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |