Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 09:25   #1
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию Графический режим в Borland C++ 3.1

Как нарисовать линию с координатами x1,x2;y1,y2;z1,z2 прямая в пространстве на Borland C++ 3.1 DOS в графическом режиме
желательно краткий пример программы:
(#include
main()
{
????
return(0);
}
ardor вне форума Ответить с цитированием
Старый 21.12.2009, 09:48   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Во первых в настрйоках включи поддержку графики там, код сейчас дам!
Код:
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#define PATHTODRIVER "c:\\BORLANDC\\bgi\\"
void main()
{
int gdriver=DETECT;
int gmode;
initgraph(&gdriver,&gmode,PATHTODRIVER);
for (int i=0;i<12;i++)
{
setfillstyle(i,4);
bar(i*30,0,i*30+30,30);
}
for (i=0;i<16;i++)
{
setfillstyle(1,i);
bar(i*30,30,i*30+30,60);
}
getch();
closegraph();
}
Линия line(x1,y1,x2,y2);
там все гениально просто
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 21.12.2009, 16:52   #3
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от RoS Посмотреть сообщение
Во первых в настрйоках включи поддержку графики там, код сейчас дам!
Код:
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#define PATHTODRIVER "c:\\BORLANDC\\bgi\\"
void main()
{
int gdriver=DETECT;
int gmode;
initgraph(&gdriver,&gmode,PATHTODRIVER);
for (int i=0;i<12;i++)
{
setfillstyle(i,4);
bar(i*30,0,i*30+30,30);
}
for (i=0;i<16;i++)
{
setfillstyle(1,i);
bar(i*30,30,i*30+30,60);
}
getch();
closegraph();
}
Линия line(x1,y1,x2,y2);
там все гениально просто
плизз. можно с коментами) а то я графику вообще незнаю. и куда добавлять line(x1,x2;y1,y2) и еще я хочу чтобы линия поворачивалась. т.е. можно так сделать, чтобы нарисовалась линия - потом координаты новые. и опять линия нарисовалась. эту часть где координаты меняются куда писать?
ardor вне форума Ответить с цитированием
Старый 21.12.2009, 18:11   #4
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию

так. с графикой кое-как разобрался. удалось нарисовать кубик. и даже перемещать его из одного угла экрана в другой)))
но моя цель в другом: сделать чтобы квадрат вращался на месте. вот пример моей программы. но она почемуто неработает(((

Код:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>

int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int xmax, ymax;

   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "d:\\BORLANDC\\bgi\\");

   /* read result of initialization */
   errorcode = graphresult();
   /* an error occurred */
   if (errorcode != grOk)
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);
   }

   setcolor(getmaxcolor());
   xmax = getmaxx();
   ymax = getmaxy();

   /* draw a diagonal line */
   int r;
   //puts("vvedite r");
   //scanf("%d",&r);
   r=60;
   int x1=50; int x2=50;int y1=50;int y2=100; int x3=100; int y3=100; int x4=100; int y4=50;
   for(int k=0;k<900;k++)
   {
   for(int j=0;j<5;j++)
   {
   clrscr();
   x1++;
   y1=sqrt(r*r-x1*x1);
   x2++;
   y2=sqrt(r*r-x2*x2);
   x3++;
   y3=sqrt(r*r-x2*x2);
   x4++;
   y4=sqrt(r*r-x2*x2);
   line(x1,y1,x2,y2);
   line(x2,y2,x3,y3);
   line(x3,y3,x4,y4);
   line(x4,y4,x1,y1);
   }
   }
   /* clean up */
   getch();
   closegraph();
   return 0;
}
ardor вне форума Ответить с цитированием
Старый 21.12.2009, 18:11   #5
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Цитата:
Сообщение от ardor Посмотреть сообщение
плизз. можно с коментами) а то я графику вообще незнаю. и куда добавлять line(x1,x2;y1,y2) и еще я хочу чтобы линия поворачивалась. т.е. можно так сделать, чтобы нарисовалась линия - потом координаты новые. и опять линия нарисовалась. эту часть где координаты меняются куда писать?
А что тут - возьми да запусти - и все поймешь!
Сначала (или наоборот) несколько кубиков одной текстуры но разного цвета, затем один цвет, но разная текстура (заливка)...
А линию предыдущую придется затирать
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 21.12.2009, 18:17   #6
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию

при извлечении корня выдает ошибку((( пробовал sqrt, powl , pow все равно такое же. корень извлекаю чтобы вычесть значение у по формуле окружности
ardor вне форума Ответить с цитированием
Старый 21.12.2009, 20:49   #7
Nitrino
Я ещё только учусь
Форумчанин
 
Регистрация: 06.05.2009
Сообщений: 158
По умолчанию

а ошибку то какую выдаёт хоть напиши... тут же не телепаты...
Nitrino вне форума Ответить с цитированием
Старый 21.12.2009, 21:20   #8
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Цитата:
Сообщение от Nitrino Посмотреть сообщение
а ошибку то какую выдаёт хоть напиши... тут же не телепаты...
Согласен с этим постом, ошибку неплохо было бы вывести
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 22.12.2009, 00:18   #9
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию

ошибку выдает когда прога компиляцию прошла:
sqrt: DOMAIN error
Floating point error: Domain.
Abnormal program termination

т.е. когда прогу запускаю - черный экран появляется и опять выходит в компилятор. когда нажимаю User screen там на черном экране эт написано. библиотеку <math.h> подключил.
ardor вне форума Ответить с цитированием
Старый 22.12.2009, 03:13   #10
Nitrino
Я ещё только учусь
Форумчанин
 
Регистрация: 06.05.2009
Сообщений: 158
По умолчанию

Рассотрим эту часть
Код:
y1=sqrt(r*r-x1*x1);
Здесь вы из 3600(r*r) вычитаете (x1*x1) и получается что уже через 61 операцию цикла вы пытаетесь посчитать корень из отрицательного числа..
Nitrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графический режим и мышь Murata Паскаль, Turbo Pascal, PascalABC.NET 0 06.06.2009 17:59
Графический режим galaid Паскаль, Turbo Pascal, PascalABC.NET 2 05.05.2009 17:51
Графический режим в С Raz0r Помощь студентам 4 03.03.2008 16:49