Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
1

Построение графика

19.12.2015, 16:04. Показов 2044. Ответов 44
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообщем, проблемма не в самой постройке графика.. А скажем так в задании там сказано, что надо построить график по Х - каким-то равномерным масштабом, а по Y - логарифмическим масштабом и ещё какая-то "Привязка" там по X,Y - автоматическим масштабом, вообщем ничего не ясно.. И ещё надо создать окно и всунуть туда график используя
Pascal
1
setviewport
, помогите разобратся пожалуйста!
Вот мой код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program lb10;
uses graph, crt;
const a=0; b=2*pi; h=0.1; h1=20; x0=60; y0=240; m=50;
var driver, d2, mode, x1, y1: integer;
    x,y:real;
 function f(x:real):real;
 begin
 f:=exp(-x)*sin(8*x)+1;
 end;
begin clrscr;
driver:=detect;
initgraph(driver,mode,'C:\TP7\TP\BGI');
setviewport(600,600,800,800,clipoff);
setcolor(5);
line(20,y0,600,y0);
line(x0,440,x0,20);
x:=a; x1:=x0+trunc(m*x);
y:=f(x); y1:=y0-trunc(m*y);
moveto(x1,y1);
while x<=6 do begin
y:=f(x); y1:=y0-trunc(m*y);
lineto(x1,y1);
x1:=x1+h1; x:=x+h;
end;
outtextxy(200,320,'GRAFIK ');
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2015, 16:04
Ответы с готовыми решениями:

Построение графика
Построить семейство кривых y = f(x) для указанных значений параметра \lambda и оси...

Построение графика.
Построить график указанной функции. (x2+y2-ax)2-L2(x2+y2)=0, a&gt;0, L&gt;0

Построение графика
1.Построить горизонтальную и вертикальную координатные оси. 2.Подписать названия координатных...

Построение графика функции
Друзья, график этой функции tgX+sqrt(e(X)-1) доставил мне не мало проблем и я вынужден попросить у...

44
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
19.12.2015, 18:00 2
Цитата Сообщение от Azazel-San Посмотреть сообщение
setviewport(600,600,800,800,clipoff);
И это при размерах графического окна 640х480?
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.12.2015, 16:54  [ТС] 3
Puporev, да при любом думаю, я просто для себя обкатывал новую команду)

Добавлено через 3 часа 19 минут
актуально.

Добавлено через 21 час 40 минут
Ап темы

Добавлено через 21 час 46 минут
help
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7750 / 4584 / 2818
Регистрация: 22.11.2013
Сообщений: 13,040
Записей в блоге: 1
22.12.2015, 09:08 4
Задания нужно приводить полностью, если, конечно, интересует результат.
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.12.2015, 09:50  [ТС] 5
bormant, это и есть задание, как бы, построение графика табуляции функции, с использованием команды setviewport
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7750 / 4584 / 2818
Регистрация: 22.11.2013
Сообщений: 13,040
Записей в блоге: 1
22.12.2015, 09:58 6
Выходит про логарифмический масштаб и все остальное -- это не часть задания, а только ваши фантазии?

Добавлено через 1 минуту
Ключевое слово моего предыдущего сообщения -- "полностью".
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.12.2015, 16:13  [ТС] 7
bormant, блин зачем так сразу унижать людей?(
Я могу скинуть фото задания, но там не на русском, сейчас посмотрю полностью может что упустил.
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.12.2015, 16:32  [ТС] 8
И так..
Лаб №10.
Построение графика функции, на основе табуляции функции.
Графично изобразить. Построить график функции 1-й сменной.
Задача: разработать алгоритм постройки графика функции 1-й сменной, согласно требованиям указанных в таблице, в соответствии с вариантом. Данный алгоритм реализовать программно.
График нужно вогнать в окно с помощью команды setviewport
Ниже прикрепил саму таблицу, мой вариант 11
Миниатюры
Построение графика  
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7750 / 4584 / 2818
Регистрация: 22.11.2013
Сообщений: 13,040
Записей в блоге: 1
22.12.2015, 16:34 9
Цитата Сообщение от Azazel-San Посмотреть сообщение
зачем так сразу унижать людей?
Вот и я вам намекаю, не унижайте никого, приводите задания полностью, внятно, не заставляйте переспрашивать по многу раз. Если в задании вам что-то непонятно, это не всегда значит, что дефект именно в задании. А то "каким-то равномерным" (тут если выкинуть слово-паразит, понятно), "каким-то логарифмическим" (двоичным? натуральным? десятичным?), "какая-то привязка там автоматическим масштабом", вот прямо как у Филатова
Исхитрись-ка мне добыть
То-ЧАво-Не может быть!
Запиши себе названье,
Чтобы в спешке не забыть!
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.12.2015, 17:09 10
Насчет логарифмического масштаба это кто-то загнул. Этот масштаб применяется дя очень больших диапазонов значений тира 0.001...100000, а здесь на интервале 0.1...2.1 значение меняется от 0.44 до 1.83, какой тут логарифмический масштаб?
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.12.2015, 17:14  [ТС] 11
Puporev, а что это вообще такое и с чем его едят? Я тоже такой сижу и думаю зачем так рисковать?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7750 / 4584 / 2818
Регистрация: 22.11.2013
Сообщений: 13,040
Записей в блоге: 1
22.12.2015, 17:18 12
Puporev,
несмотря на наличие/отсутствие смысла (кроме приобретения навыков делать подобное): 1) на вид кривой это всё же повлияет, 2) по X и Y заказано автомасштабирование и автопривязка, так что график всё равно займёт всё доступное пространство (40,100)-(200-200).

Добавлено через 3 минуты
Цитата Сообщение от Azazel-San Посмотреть сообщение
что это вообще такое и с чем его едят?
логарифмический масштаб? Это когда по оси откладывается не значение, а его логарифм, например, не y, а ln(y). удобно для быстрорастущих функций, типа y=exp(x) (ее график станет прямой линией), y=x! и т.п.
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.12.2015, 17:21  [ТС] 13
bormant, угу, ну это уже что-то проясняет) ещё бы его пощупать в программе..
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.12.2015, 17:25 14
Насчет логарифмического масштаба не совсем так.
Вот этот график с линейным масштабом и с логарифмическим.
Миниатюры
Построение графика   Построение графика  
1
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.12.2015, 17:28  [ТС] 15
Puporev, он стал более плавным, но с другой стороны они довольно таки сильно отличаются друг от друга, несмотря что это одна и таже ф-я
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7750 / 4584 / 2818
Регистрация: 22.11.2013
Сообщений: 13,040
Записей в блоге: 1
22.12.2015, 17:36 16
Azazel-San,
любое построение графика в конечном итоге сводится в преобразование реальных координат в экранные.
Автомасштабирование сводится к отображению реального диапазона в экранный по каждой их осей,
mx=(rx_max-rx_min)/(sx_max-sx_min). SetViewPort позволяет принять sx_min за 0. Также нужно учесть разнонаправленность оси Y, вверх в математике и вниз на экране.
Автопривязка сводится к построению графика не от (0;0) а от реально используемых координат, главное отметить оси в удобных значениях.
1
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.12.2015, 17:47  [ТС] 17
bormant, что-то я чувствую что видимо эту лабу я не сдам, но да ладно..
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.12.2015, 18:25 18
Без логарифмического нарисовал, а лог. масштаб ни разу не рисовал и сходу в голову не лезет.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
uses graph;
function F(x:real):real;
begin
F:=exp(-x)*sin(8*x)+1;
end;
var xn,xk,max,min,x,y,mx,my,dx:real;
    x0,y0,i,px,py:integer;
    s:string;
begin
x0:=0;
initgraph(x0,y0,'');
setbkcolor(15);{цвет фона}
setcolor(14);
setfillstyle(1,14);
bar(40,100,200,200);{окно графика}
SetViewPort(40,100,200,200,clipon);
x0:=20;{центр окна}
y0:=80;
xn:=0.1;xk:=2.1;{интервал по Х}
mx:=130/xk;{масштаб по Х}
my:=60/F(0.2);{по У}
setcolor(8);{цвет линий}
line(20,80,200,80);{оси}
line(20,0,20,200);
for i:=1 to 2 do{максимальное количество засечек в одну сторону}
  begin
   line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));{засечки на оси У}
   {подпись оси У}
   str(i,s);
   outtextXY(x0-15,y0-round(i*my),s);{соответственно засечкам}
   line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); {засечки на оси Х}
   {подпись оси Х}
   outtextXY(x0+round(i*mx),y0+10,s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(150,y0-10,'X');
outtextXY(x0+5,0,'Y');
setcolor(8);
{график}
x:=xn;
dx:=0.01;
setcolor(12);
moveto(x0+round(x*mx),y0-round(F(x)*my));
while x<=xk do
 begin
  lineto(x0+round(x*mx),y0-round(F(x)*my));
  x:=x+dx;
 end;
readln
end.
1
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.12.2015, 18:43  [ТС] 19
Puporev, а в АБЦ какая команда заменяет SetViewPort?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7750 / 4584 / 2818
Регистрация: 22.11.2013
Сообщений: 13,040
Записей в блоге: 1
22.12.2015, 18:50 20
В первом приближении:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
uses graph;
function f(x: Real): Real;
begin
  f:=exp(-x)*Sin(8*x)+1;
end;
const
  vx1=40; vy1=100; vx2=200; vy2=200;
  vwx=vx2-vx1; vwy=vy2-vy1+1;
  xmn=0.1; xmx=2.1; mx=(xmx-xmn)/vwx;
var
  my, x, y, ymn, ymx: Real;
  i, gd, gm, gr: Integer;
begin
  gd:=Detect; InitGraph(gd,gm,''); gr:=GraphResult;
  if gr<>0 then begin
    WriteLn('*** Error: ',GraphErrorMsg(gr)); Halt(1);
  end;
  SetFillStyle(SolidFill,Green); Bar(vx1,vy1,vx2,vy2);
  SetViewPort(vx1,vy1,vx2,vy2,ClipOff);
  ymn:=Ln(f(xmn)); ymx:=ymn;
  for i:=1 to vwx*mm do begin
    y:=Ln(f(xmn+i*mx));
    if ymx<y then ymx:=y;
    if ymn>y then ymn:=y;
  end;
  my:=vwy/(ymx-ymn);
  MoveTo(0,Round(vwy-(Ln(f(xmn))-ymn)*my));
  for i:=1 to vwx*mm do begin
    x:=i; y:=Ln(f(xmn+x*mx))-ymn;
    LineTo(i,Round(vwy-y*my));
  end;
  Write('Press Eneter...'); ReadLn;
  CloseGraph;
end.
Остались оси и их подписи.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2015, 18:50
Помогаю со студенческими работами здесь

Построение графика функции
Здравствуйте помогите пожалуйста с построением графика функции в декартовых координатах

Построение графика функции
Построить график функции f(x)=\begin{cases}-x+2&amp;\text{, }x\leq 1\\\\x^2+1&amp;\text{, }...

построение графика функции
Нужна помощь в построении графика функции y=sqr(1+x)/sqrt(1+sqr(x)) на интервале -10&lt;=x&lt;=10 с шагом...

Построение графика функции
помогите плиз график построить


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru