import java.lang.Math;
public class Transform2D {
final double pi = 3.141582654;
protected double sinus(double fi) { // vlastny sinus pre stupne (nie radiany!)
return(Math.sin(fi*pi/180));
}
protected double cosinus(double fi) { // vlastny cosinus
return(Math.cos(fi*pi/180));
}
// dalej budu pouzite metody sinus a cosinus
// 2d otocenie
public void otoc(int fi, double[][] matvrch) {
for(int i=0;i<matvrch.length;i++) {
double x = matvrch[i][0];
double y = matvrch[i][1];
matvrch[i][0] = (x*cosinus(fi) -y*sinus(fi));
matvrch[i][1] = (x*sinus(fi) +y*cosinus(fi));
}
}
// 2d zmena mierky
public void zmenMierku(double M, double[][] matvrch) {
for(int i=0;i<matvrch.length;i++) {
for(int j=0;j<matvrch[i].length;j++) matvrch[i][j] *= M;
}
}
// 2d skosenie
// pri osi plati ze 0 == x, 1 == y
public void skos(double S,int os, double[][] matvrch) {
// opacna os k tej co sa meni
int pomOs = (os == 1 ? 0 : 1);
for(int i=0;i<matvrch.length;i++) {
matvrch[i][os] += S* matvrch[i][pomOs];
}
}
// 2d posunutie
public void posun(double posun, int os, double[][] matvrch) {
for(int i=0;i<matvrch.length;i++) {
matvrch[i][os] += posun;
}
}
// 2d zrkadlenie
public void odraz(int os, double[][] matvrch) {
for(int i=0;i<matvrch.length;i++) {
matvrch[i][os] = -matvrch[i][os];
}
}
}