Помощь - Поиск - Пользователи - Календарь
Полная версия: графика
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
pasman
вопрос: почему данная программа выдает вместо 1 круга множество? =(
текст :
program found;
uses crt,graph;
var
grdr,grmo,x,y:integer;
d:longint;
begin
grdr:=detect;
initgraph(grdr,grmo,'j:\pascal\bgi');
readln;
for x:=1 to 640 do
for y:=1 to 480 do
begin
d:=abs((x-320)*(x-320))+abs((y-240)*(y-240));
if d<50 then putpixel(x,y,white);
end;
readln;
closegraph;
end.
volvo
Во-первых, пользуйся тегами...
А во-вторых, смотри вот сюда:
if d<50 then putpixel(x,y,white);
Ты не забыл sqrt?
pasman
можно ставить sqrt а можно нет... в данном случае радиус будет равен корню из 50. но дело в том, что получается картина, напоминающая мишень=( а мне нужон 1 круг
и кто такие теги?
volvo
program found;
uses crt,graph;
var
grdr,grmo: integer;
x,y:longint; { здесь желательно LongInt }
d:real;
begin
grdr:=detect;
initgraph(grdr,grmo,'');
readln;
for x:=1 to 640 do
for y:=1 to 480 do begin
d:=sqrt(((x-320)*(x-320))+abs((y-240)*(y-240)));
if d<50 then putpixel(x,y,white);
end;
readln;
closegraph;
end.

У меня дает один круг...

а теги... Кнопку CODE (#) видишь? ;)
pasman
ээ... нет...
turbo pascal 7.0 досовский такой....
pasman
ааааа....... x и y longint сделал, вышло все.
но странно=\ при чем тут такой большой режим? x и y больше 640 и 480 значения не принимают....
volvo
Зато x*x и y*y принимают... Я уже писал про это на форуме, попробуй поискать...

Вот тут: Как отсортировать?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.