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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2017, 00:06   #1
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
Сообщение Borland graphics.h Как задать масштабируемое окно с построенным графиком функции?

Доброго времени суток!
Написал программу для отображения функции sin(x) с помощью библиотеки graphics.h(borland). Программа работает, всё хорошо, но, как задать масштабируемое окно?
Вот код:
Код:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include"graphics.h"
 
#define PI 3.14159265
#define RADIANS(x) (x*(PI/180))
#define DEGREES(x) (x*(180/PI))
#define X0 (getmaxx()/2)
#define Y0 (getmaxy()/2)
#define X(x) (X0+(x))
#define Y(y) (Y0-(y))
#define x_left_border()  (-1*getmaxx()/2+10)
#define x_right_border() (getmaxx()/2-10)
void drawxaxis() {
 outtext("Press ENTER to start drawing");
 moveto(0,20);
 outtext("f(x)=sin(x)");
 moveto(0,40);
 outtext("Height: ");
 moveto(getmaxx()/2+307, getmaxy()/2-20);
 outtext("x");
 moveto(X0+3,Y0+3);
 outtext("0");
 line(5, getmaxy() / 2, getmaxx() - 5, getmaxy() / 2);

 line(getmaxx()-5, getmaxy() / 2, getmaxx() - 12, getmaxy() / 2 - 5);
 line(getmaxx()-5, getmaxy() / 2, getmaxx() - 12, getmaxy() / 2 + 5);
 
 for(int i=0;i<330;i+=30)
 {
	 line(X0+i,Y0-5,X0+i,Y0+5);
 }
  for(int i=0;i<330;i+=30)
 {
	 line(X0-i,Y0-5,X0-i,Y0+5);
 }
}
 
void drawyaxis() {
 moveto(X0+10,Y0-237);
 outtext("y");
 line(getmaxx() / 2, 5, getmaxx() / 2 - 7, 12);
 line(getmaxx() / 2, 5, getmaxx() / 2 + 7, 12);
 
 line(getmaxx() / 2, 5, getmaxx() / 2, getmaxy() - 5);
 for(int i = 0; i<300; i+=50)
 {
 line(X0+5,Y0-i,X0-5,Y0-i);
 }
 for(int i = 0; i<300; i+=50)
 {
 line(X0+5,Y0+i,X0-5,Y0+i);
 }
}

void main() {
 int color;
 double height = 0;
 double freq = 0;
 double y = 0;
 double x = 0;
 
 int gdriver = DETECT, gmode, errorcode;
 initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
 printf ("Function initgraph said, that you max X, Y is : %d,%d", getmaxx(), getmaxy());
 errorcode = graphresult();
 
   if (errorcode != grOk)
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
   }
 
 drawxaxis();
 drawyaxis();
 
 getch();
 height = 50;
 freq = 3;
 for (x = x_left_border(); x < x_right_border(); x += 0.1) {
  delay(0.1);
 
  y = height * sin(RADIANS(x*freq)); //вычисление

  putpixel(X(x), Y(y), 15);
 }
 getch();
 cleardevice();
 closegraph();
}
Bard. вне форума Ответить с цитированием
Старый 30.04.2017, 00:26   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Bard. Посмотреть сообщение
с помощью библиотеки graphics.h(borland)
странный выбор в 2017 году.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 30.04.2017, 13:59   #3
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
По умолчанию

Выбор то не мой, с удовольствием написал бы в любом другом окружении, но, преподаватели так просят
Bard. вне форума Ответить с цитированием
Старый 01.05.2017, 16:52   #4
Bard.
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 19
По умолчанию

Заголовок 2 раза поправили, а ответа не получил, видимо не получается :-D
Bard. вне форума Ответить с цитированием
Старый 02.05.2017, 14:26   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Сообщение от Bard. Посмотреть сообщение
Выбор то не мой, с удовольствием написал бы в любом другом окружении, но, преподаватели так просят
так ты им объясни, что они не правы.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли задать глобальную переменную из функции или как-то напрямую использовать память для хранения переменных из функции? Suny-o Общие вопросы Delphi 2 14.06.2012 11:45
Проблема с графиком функции Elu Microsoft Office Excel 5 15.11.2010 19:26
Как задать график функции? Bilargo Помощь студентам 13 28.10.2009 13:56
Как в функции задать два критерия mamayka Microsoft Office Excel 1 26.10.2009 18:51
Проблема с графиком функции zeppelin58 Общие вопросы C/C++ 1 15.12.2008 14:16