wpolrzedne figury po skalowaniu

0

hej, mam nastepujaca zagwostke:

mam narysowany trojkat o wspolrzednych: (x1,y1; x2, y2; x3, y3)
nastepnie skaluje trojkat o wartosc N

jak moge dostac nowe wspolrzedne trojkata po skalowaniu?

podgladalam jak te wspolrzedne zmieniaja sie w metodach onMousePressed i onMouseReleased (skalowanie zaczynam na onMousePressed, robie na onMouseDragged i koncze na released), ale wyszlo ze wspolrzedne mojego obiektu sie nie zmieniaja.. tzn jesli wypisze sobie pointy w onMousePressed i w released(juz po skalowaniu) to beda te same.

czy ktos z Was ma moze pomysl jak moge policzyc/wydobyc te wspolrzedne po skalowaniu?

pzdr,
misty

0

Z tego co piszesz, to ciężko jest poskładać jakąś całość. Co to znaczy "skaluje trojkat o wartosc N"? Co ma w ogóle myszka do tego?
Skoro masz 6 współrzędnych, to mnożysz każdą przez N i masz trójkąt przeskalowany. Będzie on co prawda w innym miejscu, ale będzie. Myszka nic do tego nie ma. No chyba, że coś jaśniej napiszesz.

0

Współrzędne będzie można policzyć wtedy, jak powiesz nam, który punkt w układzie współrzędnych zachowuje swoją pozycję.

0

zwyczajnie, pomnożyć razy skalę.
a co do przesuwania wykresu o wektor itp, to w liceum była izometria na matmie...

0

Skalowanie polega na przemnożeniu współrzędnych o pewien współczynnik.

Funkcja z JavaBlock, gdzie przekładam współrzędne z komponentu na współrzędne w układzie:

    private Point cursorInScene(Point m){
        Point in=new Point(0,0);
        in.setLocation(
                (m.x-(posX+d.width/2))/scale(),
                (m.y-(posY+d.height/2))/scale()
                );
        return in;
    }

Gdzie scale() zwraca skalę wyświetlania, a posX i posY to pozycja przesunięcia, a d to Dimension komponentu.

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