Farenin yuvarlağın içinde olup olmadığını anlamak için yapılan matematik işlemi nedir?

aionthearete

Hectopat
Katılım
12 Aralık 2021
Mesajlar
2.513
Çözümler
34
Yer
Bursa
Daha fazla  
Cinsiyet
Erkek
def icinde_mi(x,y):
xx = nesne.xcor()
yy = nesne.ycor()

yaricap = 30

uzaklik = ((x - xx) ** 2 + (y - yy) ** 2) ** 0.5
return uzaklik <= yaricap
Basit bir aim geliştirme oyunu yapmak istedim. Fare ile tıkladığımız yer x,y ve nesnenin yeri ise xx,yy.
Nesne rastgele olarak koyuluyor. Matematik işlemini yapay zeka ile ekledim ama anlayamadım şu işlemi. Anlatır mısınız?
 
Son düzenleyen: Moderatör:
İki boyutlu bir koordinat düzlemindeki iki noktanın arasındaki mesafeyi bulmaya yarayan bir işlem bu. Şu iki nokta arasındaki uzaklığa bakalım:



Koordinatları (0,0) ve (3,4). Formüle koyduğumuz zaman (((0-3)^2) + ((0-4)^2))^0.5 oluyor. Bu işlemi yaptığınızda sonucun 5 olduğunu göreceksiniz. Dikkat ederseniz bu formül, bu iki noktanın dik olmayan köşeleri olduğu dik üçgenin hipotenüs uzunluğunu bulmak için de kullanılıyor.



Pisagor formülü.
 
Oklit uzakligi.
Imlecin bulundugu noktanin cemberin merkezine olan uzakligini hesapliyorsun.
Eger uzaklik yaricapa esit ya da kucukse cemberin icindesin.
Bunu daha hizli yapmak icin cember degil kare kullanilir ( hitbox )
Koordinat duzleminde verilen x,y nin karenin icinde olup olmadigini anlamak daha kolay cunku. Ayrica piksel dogasi geregi kare oldugu icin isimize daha cok geliyor kare uzerinden gitmek.
 
Kare yapsaydım nasıl yapmam gerekirdi?

Karenin bir tabanının yere paralel olduğu durumda; bir noktanın karenin içinde olup olmadığını karenin en alt, en üst, en sağ, en sol koordinatlarının arasında olup olmadığını inceleyerek bulursun, hesaplaması daireden daha basit, kolayca kafanızda canlandırabilmeniz lazım.

Bir noktanın görseldeki karenin içinde olması için X koordinatının 1'den büyük 3'ten küçük olması, y koordinatının 2'den büyük 4'ten küçük olması lazım.
Ör: X=2.0 y=3.2 -> içeride
Ör: X=2.0 y=4.2 -> dışarıda

 
Son düzenleyen: Moderatör:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…