Jak znaleźć pola które przecina wektor


(stanek.94) #1

Witam ! Piszę program który tworzy mapę pobierając dane położenia robota i pomiary z jego sensorów odległości. Robot jeździ po mapie i za pomocą jego wyników tworzy się mapę. Mapa jest to tablica dwuwymiarowa w której każda komórka zajmuje 20cmx20cm. Więc jeśli robot znajduje się w punkcie x =10cm, y =10  to znajduje się w komórce (0,0). jeśli x =33cm, y =35 to jest w komórce (2,2).  Komórkę na której zostało coś wykryte wyszukuje w ten sposób:

cellX = robot.x + sensorReadings() * cos((robot.obrocenie + i * 45) * PI / 180);
cellY = robot.y + sensorReadings() * sin((robot.obrocenie + i * 45) * PI / 180);

indexX = (int) (cellX * 100 + 10) / 20;
indexy = (int) (cellY * 100 + 10) / 20;

czyli

X = xrobota + dlugosc wyniku × cos(α + β),

Y = yrobota + dlugosc wyniku  × sin(α + β), gdzie α to obrócenie robota a β obrócenie sensora.

Ale słaby jestem jeśli chodzi o wektory i nie wiem jak znaleźć również X,Y pól które przecina ten wektor. Czy ktoś mógłby jakoś podpowiedzieć?


(KamilDz) #2

Nie wiem o co Ci chodzi, ale zgaduję że hasło jakie szukasz to kolizja prostej z płaszczyzną. Może zapytaj na pl.sci.matematyka

Tutaj masz coś podobnego:

http://forum.4programmers.net/Algorytmy/131050-Przeciecie_trojkata_z_odcinkiem_-_kolizje_3D