Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Граф

Автор: LLIypLLIyH 13.06.2008 1:41

Пмогите зделать графику в паскале пожалста

y=|x-30|(в кубе)+40


я не могу понять как там

Автор: мисс_граффити 13.06.2008 6:50

поищи по форуму - была программка, рисующая график любой функции

Автор: LLIypLLIyH 15.06.2008 16:13

Цитата(мисс_граффити @ 13.06.2008 8:50) *

поищи по форуму - была программка, рисующая график любой функции
Я нашёл уже давно, вот только как эту формулу записать в код, я делаю а она полосы рисует левые

Автор: volvo 15.06.2008 16:22

Показывай программу, которая

Цитата
полосы рисует левые
... Мне просто интересно, как этого можно добиться...

Автор: LLIypLLIyH 15.06.2008 16:37

Цитата(volvo @ 15.06.2008 18:22) *

Показывай программу, которая ... Мне просто интересно, как этого можно добиться...


Код
program g;
Uses Graph,crt;
const
{ OPTIONS }
shag=0.00001;
lgr = -50;
pgr = 50;
zcrtX=320;
zcrty=240;
mtrX=40;
mtrY=40;
colorG=15;
colorOXY=4;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-200;
oxymaxY=200;

Var grDriver : Integer;
grMode : Integer;

x,y:real;
i:integer;
Begin
grDriver:=Detect;
InitGraph(grDriver, grMode, 'E:\bp\bgi');
for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY);
for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY);

x:=lgr;
while x<=pgr do
begin
if x<>0 then begin y:=abs((x-30)*(x-30)*(x-30))+40;
putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg) end;
x:=x+shag;
end;
readkey;
closegraph;
end.

Автор: volvo 15.06.2008 17:00

Ну, во-первых, у тебя выше записана функция |(x - 30)3| + 40, а тебе надо |x - 30|3 + 40 (хотя в принципе одно и то же, но чего бы не написать, как следует?)

Во-вторых, что за ограничение на X = 0? Там, где ты взял эту программу это ограничение нужно, здесь - нет...

Ну, и наконец, ты смотрел, чему равен Y при X = -50? Константы поправь вот так:

{ OPTIONS }
shag=0.1;
lgr = -50;
pgr = 150;
zcrtX=320;
zcrty=240;
mtrX=1;
mtrY=0.001;
colorG=15;
colorOXY=4;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-200;
oxymaxY=200;

, может что-нибудь и получится...

Автор: LLIypLLIyH 15.06.2008 17:08

Цитата(volvo @ 15.06.2008 19:00) *

Ну, во-первых, у тебя выше записана функция |(x - 30)3| + 40, а тебе надо |x - 30|3 + 40 (хотя в принципе одно и то же, но чего бы не написать, как следует?)

Во-вторых, что за ограничение на X = 0? Там, где ты взял эту программу это ограничение нужно, здесь - нет...

Ну, и наконец, ты смотрел, чему равен Y при X = -50? Константы поправь вот так:

{ OPTIONS }
shag=0.1;
lgr = -50;
pgr = 150;
zcrtX=320;
zcrty=240;
mtrX=1;
mtrY=0.001;
colorG=15;
colorOXY=4;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-200;
oxymaxY=200;

, может что-нибудь и получится...


Ещё нужно на осях написать цифры

Автор: volvo 15.06.2008 17:22

Пользуйся поиском, наконец... Я лично выкладывал программу, которая пишет цифры на осях, и рисует стрелочки, так что не надо говорить, что этого нет на форуме... А в первом посте не было про цифры ничего...

Может, тебе еще понадобится, чтоб программа тебе дверь открывала, еду подогревала и тапочки приносила? ("Аппетит приходит во время еды" (С), правда? Тем более, если САМ ничего не делаешь, а только говоришь, что тебе НУЖНО... Нужно - делай.)