Как заполнить круг белыми точками рандомно? - Pascal
Формулировка задачи:
putpixel(random((320-R)+1+(320+R)-1), random((240-R)+1+(240+R)-1),white); Что нужно написать тут чтобы точки были только внутри круга?
program krug; uses crt,graph; var R,d,m,i: Integer; Begin clrscr; Writeln('Vvedite radius okruznosti R'); read(R); d:=9; m:=2; initgraph(d,m,''); randomize; setcolor(2); circle(320,240,R); setfillstyle(1,green); floodfill(320,240,green); for i:= 1 to 100 do putpixel(random((320-R)+1+(320+R)-1), random((240-R)+1+(240+R)-1),white); readln; readkey; end.
Решение задачи: «Как заполнить круг белыми точками рандомно?»
textual
Листинг программы
const xc=320; yc=240; ... Circle(xc,yc,R); ... for i:=1 to 100 do begin repeat tx:=-R+Random(2*R+1); ty:=-R+Random(2*R+1); until Sqr(tx)+Sqr(ty)<=Sqr(R); PutPixel(xc+tc,yc+tc,White); end;
Объяснение кода листинга программы
- Создание констант
xc
иyc
со значениями320
и240
соответственно. - Отображение круга с центром в точке (
xc
,yc
) и радиусомR
. - Цикл для заполнения области вокруг круга белыми точками, повторяемый 100 раз:
- Генерация случайных координат
tx
иty
в диапазоне от-R
доR
. - Повторять генерацию случайных координат, пока сумма их квадратов не будет меньше или равна квадрату радиуса круга.
- Установка пикселя с координатами (
xc+tc
,yc+tc
) в цвет белый (White).
- Генерация случайных координат
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д