것입니다 할 수있어. 실제 게임 개발에서 그들은 많은 최적화 트릭을 사용하며 종종 더 나은 성능을 제공합니다. 또한 게임 개발을위한 많은 라이브러리가 있습니다. 아마 당신이 원하는 것을 쉽게 얻을 수 있습니다.
하지만 어쨌든, 여기에 내가 한 일이 있습니다.
- 앞으로 나아갈 경우 지나갈 물건을 식별하십시오.
- 방금 만든 개체 목록에서 가장 가까운 것을 식별하십시오.
1
A)
- 형태의 예에서 위치/각 = MX + B
- [Y = 황갈색 (각도에 대한 식을) X + (positionY - (황갈색 (각도) * X))]
B)
2 일 : This part is more tricky (to do in programmation).
다음으로, 당신은 당신의 로봇 방향 공식은 이전에 식별 할 수있는 모든 라인 교차 위치를 찾을 수있다.
각 라인에 대한
, 다시 = MX + B 하자 우리가이 말을 바깥으로 라인을 설정해야합니다 :
이
y=3x+5 and
y=5x+1
3x+5 = 5x+1
3x-5x = 1-5
-2x = -4
x = 2
그런 다음 중 하나를 수식에 2 X를 대체, 당신은 교차점을 얻을 것이다 :
y = 3(2)+5 = 11
y = 5(2)+1 = 11
그래서이 두 선은 그 지점이 있는지 확인해야
다음 (2, 11) 점 에 교차 당신의 domain에서 로봇 경로 공식입니다.
로봇이 한 방향을보고 있으므로 1.A에서 만든 수식이 양방향 모두 무한대이므로 로봇이 움직이지 않는 한 찾은 선 교차점이 로봇의 뒷면에 있지 않도록해야합니다 뒤로 ...)
당신은 로봇의 왼쪽에있는 경우 cos (angle) 기호를보고 교점의 위치를보고 cos (angle)을 간단하게 만들 수 있다고 생각합니다. 부정적이다. 괜찮아. 마지막으로
, 당신은 모든 교차 지점을 발견하면
, 당신은 피타고라스의 정리 SQRT를 사용하여 가장 가까운을 찾을 수 있습니다 ((X1-X2)^2 + (Y1-Y2)^2)
또한 tan (90)이 없기 때문에 90 및 270도 각도에서 작동하지 않습니다.
그런 경우 세그먼트의 두 점이 모두 로봇의 양면에 있고 교점이 올바른 방향으로 있는지 살펴 보는 것만으로 통과하는 것입니다.
다시 말하지만, 최적화를위한 많은 공간이 있습니다.
방향/시야각 내에서 물체를 식별하는 방법을 묻습니다. 또는 2 점 사이의 거리를 계산하는 방법을 알고 싶습니까? – JSlain
@JSlain 첫 번째 장애물과의 거리를 알고 싶거나 시각 장애가없는 경계벽이 있다면 – Ambidextrous