Jak uzyskać 4 punkty obrócone o pewne stopnie wokół wskaźnika, aby utworzyć prostokąt? Mogę obrócić punkt wokół punktu, ale nie mogę go zrównoważyć, aby utworzyć prostokąt, który nie jest zniekształcony.Obracanie prostokąta wokół punktu
Odpowiedz
Jeśli możesz obrócić punkt wokół punktu, obracanie prostokąta powinno być proste - wystarczy obrócić 4 punkty.
Oto funkcja js obrócić punkt wokół pochodzenia:
function rotate_point(pointX, pointY, originX, originY, angle) {
angle = angle * Math.PI/180.0;
return {
x: Math.cos(angle) * (pointX-originX) - Math.sin(angle) * (pointY-originY) + originX,
y: Math.sin(angle) * (pointX-originX) + Math.cos(angle) * (pointY-originY) + originY
};
}
a następnie można to zrobić do każdego punktu. Oto przykład: http://jsfiddle.net/dahousecat/4TtvU/
zmienić kąt i uderzył run, aby zobaczyć wynik ...
Czy możesz to wyjaśnić? jsfiddle.net/bjhc34xk/7 Czy ma to coś wspólnego z przybliżeniem PI, czy może błędami matematycznymi zmiennoprzecinkowych? –
Rozwidlone skrzypce Felixa, zawierające suwak do wprowadzania dynamicznego, aby ułatwić eksperymentowanie - https://jsfiddle.net/brichins/0ccdd362/ – brichins
@MaxMastalerz Jestem pewien, że przestawiłeś się z tego już teraz, ale twój Fiddle jest prawdopodobnie nie robić tego, co myślisz. Zmieniasz współrzędną X swojego punktu końcowego, w środku obliczeń, a następnie obracasz współrzędną Y od punktu przesunięcia zamiast środka. Wyniki w chłodnej złotej spirali, ale myślę, że chciałeś to zrobić: https://jsfiddle.net/brichins/w2rxsbt4/ – brichins
próbowałeś zrobić to tak daleko? jakiś kod? dzięki – Trufa
Przetłumacz swoje cztery punkty, tak aby traktować wskaźnik jako środek, wykonaj obrót za pomocą standardowej metody macierzy obrotu, a następnie przetłumacz punkty ponownie. [Wyjaśnienie tutaj] (http://www.euclideanspace.com/maths/geometry/affine/aroundPoint/index.htm) – Michal
Gdybym zrozumiał, że go użyję, ale potrzebuję rozwiązania w prostym języku angielskim lub najlepiej w JavaScript. – Anonymous