Kezdőoldal » Tudományok » Egyéb kérdések » Van egy szabályos négyzetem,...

Van egy szabályos négyzetem, illetve szabályos háromszögem, amik középponjuk és egy csúcsuk koordinátájával vannak megadva. Hogy lehetne gyorsan eldönteni, hogy egy új, adott pont a négyzet/háromszög területére esik-e vagy sem? Programozáshoz kéne.

Figyelt kérdés

2017. márc. 15. 17:44
 1/3 anonim ***** válasza:
Egyenlőtlenség-rendszerrel?
2017. márc. 16. 10:02
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
2017. márc. 16. 11:46
Hasznos számodra ez a válasz?
 3/3 Molnár F. Árpád válasza:

Milyen programozási nyelven kellene formula? Python nyelven itt van belőle egy részlet:


# Szabályos négyszög koordinátái

square_center = (0, 0) # középpont

square_vertex = (0, 1) # egy csúcs


# Szabályos háromszög koordinátái

triangle_center = (0, 0) # középpont

triangle_vertex = (0, 1) # egy csúcs


# Függvény, ami eldönti, hogy egy pont benne van-e a négyszögben

def is_point_in_square(point, center, vertex):

x, y = point

cx, cy = center

vx, vy = vertex

half_side_length = abs(vy - cy) # a négyszög oldalának hossza

x_min = min(vx, cx) - half_side_length

x_max = max(vx, cx) + half_side_length

y_min = min(vy, cy) - half_side_length

y_max = max(vy, cy) + half_side_length

return (x_min <= x <= x_max) and (y_min <= y <= y_max)


# Függvény, ami eldönti, hogy egy pont benne van-e a háromszögben

def is_point_in_triangle(point, center, vertex):

x, y = point

cx, cy = center

vx, vy = vertex

half_side_length = abs(vy - cy) # a háromszög oldalának hossza

x_min = min(vx, cx) - half_side_length

x_max = max(vx, cx) + half_side_length

y_min = min(vy, cy)

y_max = max(vy, cy)

return (x_min <= x <= x_max) and (y_min <= y <= y_max)


# Példa pontok, amikre tesztelünk

point1 = (0, 0.5) # belül van a négyzetben, a háromszögön kívül

point2 = (1, 1) # kívül van a négyzetben és a háromszögben

point3 = (0, 2) # kívül van a négyzetben, belül a háromszögben

point4 = (0, 1) # a négyzet és a háromszög sarkában van


# Teszteljük a pontokat

print(is_point_in_square(point1, square_center, square_vertex)) # True

print(is_point_in_square(point2, square_center, square_vertex)) # False

...

2023. febr. 19. 05:32
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!