Vector3 - pozycja obiektu sprzed ułamka sekundy

0

Muszę zapisać współrzędne obiektu sprzed ułamka sekundy.

Taki szkic jak miałoby to wyglądać lub całkowicie inaczej jeśli się mylę:
pobierz wartość X
zapisz do zmiennej
zatrzymaj pobieranie i zapisywanie zmiennej
Wznów pobieranie i zapisywanie zmiennej jeśli odległość zapisanego Vectora3 do obiektu jest większa niż x

1

Whut?
Może lepiej opisz co chcesz/masz do zrobienia, a nie na co wpadłeś aby to rozwiązać.

0
Patryk27 napisał(a):

Whut?
Może lepiej opisz co chcesz/masz do zrobienia, a nie na co wpadłeś aby to rozwiązać.

Nie chcę opisywać całego projektu. Mogę napisać jeszcze że po wyznaczeniu linii (dzięki zapisaniu współrzędnych punktu {1} sprzed ułamka sekundy i aktualnej pozycji obiektu {A}) po której porusza się obiekt {A} w czasie rzeczywistym znając jedynie aktualne współrzędne obiektu muszę: znaleźć współrzędne kolejnego punktu {2} leżącego na tej samej linii co poruszający się obiekt a który jest w znanej odległości od obiektu. Znam długość odcinka |A2|, ale nie znam kierunku obiektu, nie wiem po jakiej linii, w jakim kącie się porusza.

0

Krótko spałem i ze zmęczenia nie ogarnąłem tak błachego problemu:

		static int zatrzymaj = 1;
		static float x3, y3, ostatniesprawdzenie;
		static void PozycjaSprzedChwili()
		{
			if (zatrzymaj == 1)
			{
				x3 = Position.X;
				y3 = Position.Y;
				ostatniesprawdzenie = CPUTime;
				zatrzymaj=2;
			}
			if (CPUTime > ostatniesprawdzenie + 50f)
			{
				zatrzymaj = 1;
			}
		}

Problem mam nadal bo nie wiem jak teraz obliczyć współrzędne punktu {2}. Zaraz sprawdzę te wzory: http://matematyka.pisz.pl/forum/54264.html ale najpierw muszę chyba obliczyć punkt {3} na linii |A1| który jest dalej od obiektu A niż punkt {2}. Długość odcinków musi być: |A3|>|A2|

0

W grze już wszystko mi działa, odświeża położenie obiektu co 0.025 sekundy i w te 25/1000 s oblicza mi punkt styczności z obiektem za pomocą tego wzoru: http://www.matematyka.pl/311025.htm#p4988062
Co jakiś czas obiekt zmienia kierunek, zmienia się linia po której się porusza.

Jeśli moglibyście dać jakieś wskazówki co do kodu bo pewnie jest tragiczny :(
PS a w C# wygląda to tak: http://pastebin.com/EYu0nQ9w

Czasem nie do końca działa dobrze: ilość trafień obiektu w punkt styczności to około 70%

Rysunek pomocniczy:
user image

1

Nie nadążam - skoro obiekt A zmienia położenie, to znaczy, że ma jakiś wektor kierunku i przecież to właśnie z niego powinieneś wyliczać równanie prostej, a nie bawić się w takie coś. Masz tutaj okropny błąd projektowy.

0
Patryk27 napisał(a):

Nie nadążam - skoro obiekt A zmienia położenie, to znaczy, że ma jakiś wektor kierunku i przecież to właśnie z niego powinieneś wyliczać równanie prostej, a nie bawić się w takie coś. Masz tutaj okropny błąd projektowy.

Dzięki. Teraz zrobię tak jak mówisz [będę miał dwie opcje: moje wymysły i to co mi zaleciłeś (czuję że będzie lepiej :))], ale swojego projektu nie skazuję na straty bo w sumie to działa i jest około 70% trafień a to nie mało -> obiekt zostaje wysłany w miejsce punktu i to widać. Muszę jeszcze dodać sprawdzenie kolizji innych obiektów tak żeby wysyłany obiekt spotkał się tylko obiektem A.

0

No dobrze znalazłem wzór na wektor przemieszczenia:
user image

http://www.epomoce.pl/fizyka_Ruch_jednostajny_prostoliniowy
http://www.afizyka.pl/vector2

Teraz muszę mieć wzór na linię żeby obliczyć kolejny punkt - punkt styczności obiektu A i B. Rozumiem że potrzebny jest do tego wektor przemieszczenia. Jak na razie nie udało mi się znaleźć wzoru na linię :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1