Vasto_Lorde Napisano 25 Kwietnia 2018 Opis Ten stock korzystając z pozycji (oldorigin) oraz zwrotu (angle) jakiegoś bytu, oblicza nam nową pozycję (neworigin) na podstawie podanego kąta (degree) oraz odległości (distance) jaki chcemy mieć między oldorigin a neworigin. Opcjonalny jest tutaj parametr height, dzięki któremu możemy dodatkowo określić relatywną wysokość od ziemi. Stock stock void CalculateOriginByDegree( float oldorigin[3], float angle[3], float neworigin[3], float degree, float distance, float height=0.0 ) { neworigin[0] = oldorigin[0] + Cosine( DegToRad( angle[1] + degree ) ) * distance; neworigin[1] = oldorigin[1] + Sine( DegToRad( angle[1] + degree ) ) * distance; neworigin[2] = oldorigin[2] + height; } Przykład #1 Mamy podany origin oraz angle jakiegoś bytu. Chcemy obliczyć origin który będzie stał o 90 stopni na prawo oraz w miarę blisko od oryginalnej pozycji. Kod: CalculateOriginByDegree( oldorigin, angle, neworigin, 90.0, 20.0 ); Przykład #2 Mamy podany origin oraz angle jakiegoś bytu. Chcemy obliczyć origin który będzie stał o 45 stopni na lewo oraz daleko od oryginalnej pozycji. Ponadto, chcemy by obliczona pozycja była nieco wyżej od oryginalnej Kod: CalculateOriginByDegree( oldorigin, angle, neworigin, -45.0, 150.0, 40.0 ); *Uprasza się o nie kopiowanie funkcji bez wcześniejszej zgody autora Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach