![]() |
Геометрия в Blitz3D
Вложений: 2
Я в геометрии вовсем дурак, а учебника под рукой нет (да и не было никогда :)). Так вот: есть квадрат размером, например, 30x30. В него вписан круг. Нужно, чтобы бейсик выдавал случайным образом координаты, которые находятся внутри этого круга (т.е. X и Y)
|
Re: Геометрия в Blitz3D
r = 30
x = rand(0,r) y = (rand(0,1)*2-1)* sqr((r*r)/4 - x*x) |
Re: Геометрия в Blitz3D
jimon, ты не мог бы немного ояснить сиё действо (мне самому интересно стало) :)
|
Re: Геометрия в Blitz3D
уравнение круга X*X + Y*Y = R*R
получаем X по диаметру - тоесть от -R до R,или от 0 до 30 в нашем случае выражаем Y из уравнения круга |Y| = sqr ( R*R - X*X) снимаем модуль с помощью случайности :) Y = (rand(0,1)*2-1) * sqr( R*R - X*X ) ( rand(0,1)*2-1 всегда возращает 1 или -1 ) * да кстати корень забыл, ужо исправил |
Re: Геометрия в Blitz3D
Цитата:
x=Rand(0,r) y=(Rand(0,1)*2-1)*Sqr((r*r)/4-x*x) Не работает. Попробуй в цикле посмотреть, что за цифры он выдает. SeeRnd я делал. |
Re: Геометрия в Blitz3D
Можно просто параметризировать круг.
Код:
t = fixed |
Re: Геометрия в Blitz3D
вот исправленый вариант
Код:
d = 30 ps. вариант Шолика лутче подходит имхо |
Часовой пояс GMT +4, время: 17:56. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot