00001 /*************** 00002 * vector3.h * 00003 ***************/ 00004 00005 00006 /*====================================================* 00007 * Kleine Arithmetik fuer dreidimensionale Vektoren * 00008 *====================================================*/ 00009 00010 00011 typedef struct {double x, y, z;} vector3; 00012 /* Typdefinition */ 00013 00014 00015 vector3 vector3_make(double x, double y, double z); 00016 /* Typkonvertierung: 3xREAL in vector3 */ 00017 00018 00019 vector3 vector3_add(vector3 a, vector3 b); 00020 /* Vektoraddition */ 00021 00022 00023 vector3 vector3_sub(vector3 a, vector3 b); 00024 /* Vektorsubtraktion */ 00025 00026 00027 vector3 vector3_mul(vector3 a, vector3 b); 00028 /* Vektormultiplikation */ 00029 00030 00031 vector3 vector3_Smul(double a, vector3 b); 00032 /* S-Multiplikation */ 00033 00034 00035 double vector3_skalp(vector3 a, vector3 b); 00036 /* Skalarprodukt */ 00037 00038 00039 double vector3_norm(vector3 a); 00040 /* Euklid-Norm */