04.01.15
Lütfen web sitemi ziyaret etmeyi unutmayın.
Konular arasında ilerlemek için sağa,
Bir konu hakkında ayrıntı için aşağı,
doğru ilerlemeniz gerekir
Belge Sürümü : 1.00
Son Güncelleme: 01/15
//
// vec2d CLASS by farukcan
// vektör sınıfı ve fonksiyonlarıdır
function vec2d(x,y){
this.x = x;
this.y = y;
this.add = function(v){ // a.add(v) => a-> = ->a + ->b
this.x+=v.x;
this.y+=v.y;
return this;
}
this.sub = function(v){
this.x-=v.x;
this.y-=v.y;
return this;
}
this.norm = function(){
return Math.sqrt(this.x*this.x+this.y*this.y);
}
this.skaler = function (k) { // ->a = k.->a
this.x*=k;
this.y*=k;
return this;
}
}
function v2(x,y){ // vec2d'nın hızlı oluşturucusu
return new vec2d(x,y);
}
function dot2vec(a,b){ // ->A & ->B => AB-> = dot2vec(A,B)
var e = b;
return vec_sub(b,a);
}
function vec_sub(a,b){
return new vec2d(a.x-b.x,a.y-b.y);
}
function vec_add(a,b){
return new vec2d(a.x+b.x,a.y+b.y);
}
function vec_skaler (k,v) {
return new vec2d(k*v.x,k*v.y);
}
function vec_paralel(a,b){ // birbirlerin katıysa bunlar paraleldir
if((a.x/b.x)==(a.y/b.y))
return true;
return false;
}
function vec_carp_skaler(a,b){ // skaler : iç çarpım A-> * B-> = |A| * |B| * cosX
return a.x*b.x+a.y*b.y;
}
function vec_cos(a,b){
return vec_carp_skaler(a,b)/a.norm()/b.norm();
}
function vec_birim(v){
var n = v.norm();
return v2(v.x/n,v.y/n);
}
function vec_izdusum(a,b){ // A vektörünün B üzerine iz düşümüdür B'nın birim vek @@ projeksiyonu diyede adlandırılabilir
// b'nin birim vektörünün ab skaler capımı ile çarpımıdır.
return vec_birim(b).skaler(vec_izdusum_norm(a,b));
}
function vec_izdusum_norm(a,b){ // A vektörünün B üzerine iz düşümüdür (A->*B->) / |B|
return vec_carp_skaler(a,b)/b.norm();
}
//
// ------
//
AB = A => B
A = 0A
2 boyutlu
| x |
| y |
3 boyutlu
| x |
| y |
| z |
this.norm = function(){
return Math.sqrt(this.x*this.x+this.y*this.y);
}
function vec_paralel(a,b){ // birbirlerin katıysa bunlar paraleldir
if((a.x/b.x)==(a.y/b.y))
return true;
return false;
}
Birim vektör
Normu daima 1 olan vektörlerdir.
Sadece yön ifade etmek için kullanılır
function vec_birim(v){
var n = v.norm();
return v2(v.x/n,v.y/n);
}
function vec_sub(a,b){
return new vec2d(a.x-b.x,a.y-b.y);
}
function vec_add(a,b){
return new vec2d(a.x+b.x,a.y+b.y);
}
function vec_skaler (k,v) {
return new vec2d(k*v.x,k*v.y);
}
function vec_carp_skaler(a,b){
return a.x*b.x+a.y*b.y;
}
function vec_izdusum(a,b){
// A vektörünün B üzerine iz düşümüdür B'nın birim vek @@ projeksiyonu diyede adlandırılabilir
// b'nin birim vektörünün ab skaler capımı ile çarpımıdır.
return vec_birim(b).skaler(vec_izdusum_norm(a,b));
}
function vec_izdusum_norm(a,b){
// A vektörünün B üzerine iz düşümüdür (A->*B->) / |B|
return vec_carp_skaler(a,b)/b.norm();
}
oluşturulabilir/ifade edilebilir
(3,5) => 2B Nokta
(3,3,5) => 3B nokta
2B Doğru
3,5
6,8
2B Yüzey
3,5
6,8
7,5
ötemelemeye imkan tanımak için eklenen ek satır/değerdir. Bir konumu farklı şekilde ifade etmeye imkan tanır. Standart değeri 1'dir. Kullanılırkende 1 olmalıdır
2B
homojen değil
X
y
homojen
x
y
1
3B
homojen değil
X
y
z
homojen
x
y
z
1
Dönüşüm bir vektör matrisinin, o dönüşüme karşılık gelen matris ile çarpımı ile olur
cT = cos(T)
sT = sin(T)
2B deki gibi yer değişme özelliğini sahip değildir.
R1 * R2 != R2 * R1
yani ilk x sonra yye döndürmekle ilk yye sonra xe döndürmek aynı şeyler değil
Öteleme+Döndürme != Döndürme+Ötelme
Çünkü öteleme Toplama işlemine karşılık gelir.
P' = (TR)P = RP + T
Ötemele Transformansyon matrisi
1 0 0 TX
0 1 0 TY
0 0 1 TZ
0 0 0 0