Конечто же в Бейсике есть функция для рисования окружности и её вариантов - это circle, но как нарисовать круг без этой функции?
Воспользуемся методом Монте-Карло. Закрутилось у вас в голове уже слово "казино", нет? Очень часто Монте-Карло ассоциируется с казино, а казино с рулеткой, а рулетка с чем? - со случайными числами. Наверное этот метод что-то делает со случайными числами... Не будем углублятся в статистику с теорией вероятности, но при помощи этого метода, названного методом Монте-Карло можно вычислять площадь фигур - я же хочу нарисовать круг(окружность)
Принцип здесь прост - будем ставить на экран случайные точки, много-много случайных точек, и если точка попадает в некоторую область(круг) - мы её рисуем, если нет - не рисуем. Всё просто.
Уравнение окружности с центром в начале координат O(0,0)
или если центр окружности в произвольной точке xc,yc
А для круга, вместо окружности, нужно равенство заменить неравенством
screenres 800, 600
dim as integer x,y
dim i as longint
for i=1 to 1000000
x=int(800*rnd)+1
y=int(600*rnd)+1
if (x-400)^2+(y-300)^2<70^2 then pset(x,y),14
next i
locate 1,1: print "Ok"
sleep
А теперь чтоб нарисовать окружность нужно...
заменить неравенство равенством if (x-400)^2 + (y-300)^2 = 70^2 then pset(x,y),14
Но окружности не вышло((( и даже большее количество итераций цыкла не решает проблему.
А всему причина - коварный знак равенства слишком уж он требовательный, слишком строгий. Неужели его нельзя как-то смягчить?
Обычно в программах проверки на равенство стараются не делать, а заменить на "почти равно", на "отличается не более чем на..."
screenres 800, 600
dim as integer x,y
dim i as longint
for i=1 to 1000000
x=int(800*rnd)+1
y=int(600*rnd)+1
if abs((x-400)^2+(y-300)^2 - 70^2)<100 then pset(x,y),14:
next i
locate 1,1: print "Ok"
sleep
Теперь фигура похожа на окружность. А если ещё больше увеличить жто число - получится кольцо.
abs((x-400)^2 + (y-300)^2 - 70^2) < 1000
Сразу видно безработного человека с дипломом физмата =)
@scienteath спасибо, рассмешили... Вы абсолютно правы, почти))
Как говорят, что в каждой шутке....
Врут когда говорят что знания на горбу не носить, тяжело носить - вот сбросить пытаюсь...
✅🤙 🚀
@sergiy, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
spinner, t3ran13, aim, ianboil, analise, francisgrey, strecoza, mishka, sergiy, neo, vako, rbrown, gildar, andrvik, max-max, kanenakat, oleg257, zoss, midnight, dimarss, kilobucks, ohlamoon, rusalka, dany2323, maksina, zlody, dr-boo, amikphoto, arsar, volv, vasilisapor2, nefer, turkish-r, renat242, markvial, nikalaich, gryph0n, voltash, ladynazgool, sharps, snaryaga, rubin, francesco, exan, retoldname, stranniksenya, boltyn, alikssandra, gapel, polyakov, galerina, acidgarry, oagalakova, borisss, candy777, optimist, edsaw, tatyanamishenko, yurchello, dayver, bammbuss, dmitrijv, graff0x, manavendra, mr-nikola, ondantr, vladsm, mirgais, varja, prifix, abloud, dignityinside, foxycat, ksantoprotein, process, chugoi, nikulinsb, shafarevich, tulencha, amalinavia, kito-boy, nikitosuna, izbushka, astramar, propoker, cryptovisitor, zelivsky, html, vredinka2345, benken, kash47, carpe-diem, marina-spring, azarovskiy, funt33, samael27, kalter, tys, natasha01, mister-omortson, nightinga1e, apnigrich, siddxa, cryptobandera, doublingseason, necrogenesis, photofreediver, maryatekun, lologom, anykeycheg, prezza, yroslav94, akva22, tyi-ra, elcpa, dobrotanya, boliwar, veta-less, irkinmick, kinoshka, svetozarhobbot, archual, automedia, alexxela, burger-knig, zirodin, veterperemen, virka, flint, charisma, bunakov, olesia16, alte
Поэтому я тоже проголосовал за него!
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
Сюда приплывал Моби Дик