Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Alexo_nonstop
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 79
1

на графике отображалась только 1 четверт коордтнатных осей

10.12.2015, 09:20. Просмотров 167. Ответов 4
Метки нет (Все метки)

Нужно, чтобы на графике отображалась только 1 четверт коордтнатных осей
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
Uses crt,graph;
Var i,j:integer;
xmin,xmax:real;
root:array[1..100]of real;
xA:real;
Procedure Grafica(x_min,x_max:real);
Type dot=record
     x,y:integer;
     end;
var Driver,Mode,i1,xs,ys,xc,yc,x0,y0,left,right,up,down,n:integer;
f:word;
ex,ey:real;
dots: array [1..3] of dot;
x: array [1..1000] of real;
y: array [1..1000] of real;
dx,kx,ky,x_min1,x_max1,y_min,y_max:real;
path,s,st:string;
 
begin
Driver:=detect;
Mode:=VGAHI;
InitGraph(Driver,Mode,' ');
left:=120;
Right:=520;
up:=40;
down:=440;
x_min1:=-25;
x_max1:=25;
 
ex:=5;
ey:=1000;
n:=1000;
dx:=(x_max-x_min)/N;
 For i1:=1 to N do
  begin
   x[i1]:=x_min+dx*(i1-1);
   y[i1]:=x[i1]*x[i1]*x[i1]+x[i1]-10000;
  end;
 
y_min:=y[1];
y_max:=y[1];
 For i1:=1 to N do
  begin
   If y_min>y[i1] then y_min:=y[i1];
   If y_max<y[i1] then y_max:=y[i1];
  end;
 
kx:=(right-left)/(x_max1-x_min1);
ky:=(down-up)/(y_max-y_min);
 
x0:=down+round(ky*y_min);
y0:=round(left+(right-left)/2);
f:=0;
 While x0<up       do begin x0:=x0+round(ky*ey); f:=1;  end;
 While x0>down   do begin x0:=x0-round(ky*ey); f:=1;  end;
setlinestyle(2,0,normwidth);
setcolor(green);
 For i1:=1 to trunc((x0-up)/(ky*ey)) do
  begin
   Moveto(y0+2,(x0-i1*round((ky*ey)))+2);
   SetColor(White);
   str(i1*ey:1:0,st);
   Outtext(st);
   SetColor(Green);
   Moveto(left,(x0-i1*round((ky*ey))));
   Lineto(Right,(x0-i1*round((ky*ey))));
  end;
 For i1:=1 to trunc((down-x0)/(ky*ey)) do
  begin
   Moveto(y0+2,(x0+i1*round((ky*ey)))+2);
   SetColor(White);
   str(-i1*ey:1:0,st);
   Outtext(st);
   SetColor(Green);
   Moveto(left,(x0+i1*round((ky*ey))));
   Lineto(Right,(x0+i1*round((ky*ey))));
  end;
 For i1:=0 to trunc((right-y0)/(kx*ex)) do
  begin
   Moveto((y0+i1*round(kx*ex))+2,x0+5);
   SetColor(White);
   str(i1*ex:1:0,st);
   Outtext(st);
   SetColor(Green);
   Moveto((y0+i1*round(kx*ex)),down);
   Lineto((y0+i1*round(kx*ex)),up);
  end;
 For i1:=1 to trunc((y0-left)/(kx*ex)) do
  begin
   Moveto((y0-i1*round(kx*ex))+2,x0+5);
   SetColor(White);
   str(-i1*ex:1:0,st);
   Outtext(st);
   SetColor(Green);
   Moveto((y0-i1*round(kx*ex)),down);
   Lineto((y0-i1*round(kx*ex)),up);
   end;
Settextstyle(0,0,1);
 if f<>1 then
  begin
   setlinestyle(0,0,thickwidth);
   setcolor(white);
   Line(left,x0,Right,x0);
   setfillstyle(1,white);
   dots[1].x:=right;    dots[1].y:=x0;
   dots[2].x:=right-20; dots[2].y:=x0+3;
   dots[3].x:=right-20; dots[3].y:=x0-3;
   fillpoly(3,dots);
   outtextxy((right-5),(x0+15),'X');
  end;
 
setlinestyle(0,0,thickwidth);
setcolor(white);
Line(y0,down,y0,up);
setfillstyle(1,white);
dots[1].x:=y0;   dots[1].y:=up;
dots[2].x:=y0-3; dots[2].y:=up+20;
dots[3].x:=y0+3; dots[3].y:=up+20;
fillpoly(3,dots);
outtextxy((y0-15),(up+5),'Y');
 
SetLineStyle(0,0,normwidth);
SetColor(red);
xs:=y0+round(kx*x[1]);
ys:=down-round(ky*(y[1]-y_min));
Moveto(xs,ys);
 For i1:=1 to N do
  begin
   xc:=y0+round(kx*x[i1]);
   yc:=down-round(ky*(y[i1]-y_min));
   Lineto(xc,yc);
  end;
setcolor(yellow);
outtextxy((y0-150),(up-25),'x=21.52887494');
end;
 
Procedure Calculation(var ar:array of real);
Const E=0.0001;
Var x_,y_,x1,y1:real;
begin
i:=0;
x_:=(xmin+xmax)/2;
while abs(x_-x1)>=E do
begin
  y_:=x_*x_*x_+x_-10000;
  y1:=3*x_*x_+1;
  x1:=x_;
  x_:=x_-y_/y1;
  ar[i]:=x_;
  inc(i);
writeln(i,'-iteratia:');
writeln('Function:',y_:3:4,' ','Poxidna:',y1:3:5,' ','del x:',x_:3:5);
delay(3000);
end;
writeln(' ');
write('Korin:x=',x_:2:8);
delay(4000);
end;
 
Begin
Clrscr;
Writeln('Vvedit promizhok');
Write('a = ');
Readln(xmin);
Write('b = ');
Readln(xmax);
Calculation(root);
Grafica(xmin,xmax);
Readln;
CloseGraph;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 09:20
Ответы с готовыми решениями:

Пропорциональность осей на графике
Доброго времени суток! Вот имеется код решётки: m=5; n=10; dx=10; dy=30;...

Количество осей У на графике MathCAD 14
Доброй ночи всем! (Ну, у кого как..) Вопрос в следующем - можно ли...

Изменение параметров осей на графике
Добрый день. Имеется любой график, например такой: t = 0 : pi/50 : 10*pi ; ...

Maple 7, подпись осей на графике plot
Есть некая функция plot(,1..N,style=line,color=blue,thickness=4);...

Замена местами осей на точечном графике
Добрый вечер ! У меня возникли проблемы с построением графика в excel.Ввел...

4
Puporev
Модератор
54677 / 42099 / 29068
Регистрация: 18.05.2008
Сообщений: 99,343
10.12.2015, 10:20 2
И это по Вашему график?
0
Миниатюры
на графике отображалась только 1 четверт коордтнатных осей  
Puporev
Модератор
54677 / 42099 / 29068
Регистрация: 18.05.2008
Сообщений: 99,343
10.12.2015, 10:21 3
Что вообще-то нужно?
0
Alexo_nonstop
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 79
10.12.2015, 10:38  [ТС] 4
чтобы точка отсчета осей была не по центру экрана, а в левом нижнем угле экрана
0
Puporev
Модератор
54677 / 42099 / 29068
Регистрация: 18.05.2008
Сообщений: 99,343
10.12.2015, 10:59 5
Pascal
1
2
x0:=20;
y0:=getmaxY-20;
Добавлено через 18 минут
А вообще я не понял как все построено и нет желания разбираться, одно только вижу что это не график, а чудо в перьях.
0
10.12.2015, 10:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2015, 10:59

Создание трех и более осей на графике
Здравствуйте! Не могу найти, как создать третью y-ось на графике....

Как изменить масштаб осей в графике спектрограммы?
Здравствуйте! Пользуюсь встроенной функцией spectrogram для построения...

Фиксирование масштаба одной из осей на графике (MatPlotLib)
Здравствуйте! Имеется Python (3.4.3) с подключённым MatPlotLib. На осях...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru