Witam.
Nie znam Bascoma, ale w każdym języku zasada jest taka sama.
Po pierwsze, przy obrocie o dowolny kąt musimy skądś określić wartość sinusa i kosinusa tego kąta. Jeśli te funkcje nie są wbudowane w język (jak to miały interpretery Basic'a na komputerkach w rodzaju Spectrum), to trzeba zapewne jakoś dołączyć bibliotekę matematyczną, która te funkcje zawiera, lub może poinformować kompilator, że takie funkcje będą używane (w języku C pisze się dyrektywę #include<math.h>, ale jak się to robi, i czy w ogóle trzeba, w Bascom'ie - nie wiem).
Po drugie, obliczenia będą wykonywane jako zmiennoprzecinkowe, i w miarę potrzeby trzeba tak zadeklarować odpowiednie zmienne pomocnicze. Ale współrzędne na ekranie są typu całkowitego, więc ostateczne wyniki obliczeń trzeba przekształcić do tego typu (w niektórych językach, np. C, taka konwersja jest dokonywana automatycznie). Trzeba tylko ewentualnie dodać do zamienianej zmiennej wartość 0.5, aby zmniejszyć błąd zaokrąglenia (tzn. aby np. 3.25 było zaokrąglane do 3, a 3.6 do 4, a nie w obu tych wypadkach do 3).
A jeśli chodzi o same obliczenia, to już chyba rzeczywiście w każdym języku jednakowo: trzeba współrzędne (x,y) wszystkich punktów (w przypadku trójkąta trzech) przekształcić przez obrót względem wybranego punktu (x0,y0):
x'=x0+(x-x0)*cos(fi)-(y-y0)*sin(fi)
y'=y0+(x-x0)*sin(fi)+(y-y0)*cos(fi)
dodając ewentualnie średnik na końcu linii (jak to jest konieczne przykładowo w C, ale w Basic'u nie, i wobec tego zapewne w Bascom'ie również nie).
Wydaje się, że w każdym standardzie obsługi wyświetlacza graficznego współrzędna x rośnie w prawo ekranu, ale co do y, to są różne szkoły, więc: jeśli 0 jest na dole, i y rośnie w górę ekranu, to dodatni kąt fi oznacza obrót przeciwny do wskazówek zegara, a jeśli 0 jest na górze, i y rośnie w dół ekranu, to odwrotnie (czyli dodatni kąt fi to obrót zgodny ze wskazówkami zegara).
Obliczone współrzędne punktów można już używać do rysowania linii i ew. innych obiektów podstawowych. Czyli w przypadku trójkąta byłoby to, wzorując się na Twoim przykładzie, coś w rodzaju:
Kod: Zaznacz cały
Line(x1prim , y1prim)–(x2prim , y2prim) , &B00000000
Line(x1prim , y1prim)–(x3prim , y3prim) , &B00000000
Line(x2prim , y2prim)–(x3prim , y3prim) , &B00000000
Pozdrawiam, i życzę powodzenia.