/* shift vector to origin, rotate in yz plane and shift back */ Vec v_shift_rotate_yz(Vec *v1, Vec *shift, float phi) { Vec v2; v_dif(&v2, v1, shift); rotate_2D(&(v2.y), &(v2.z), phi); v_sum(&v2, shift, &v2); return v2; }
int main(int argc, char **argv) { COORD cord[3]; float a,b; scanf("%f %f %f %f %f %f %f", &cord[0].x, &cord[0].y, &cord[0].z, &cord[1].x, &cord[1].y, &cord[1].z, &a); printf("\nv1 = ( %f , %f , %f)", cord[0].x, cord[0].y, cord[0].z); printf("\nv2 = ( %f , %f , %f)", cord[1].x, cord[1].y, cord[1].z); printf("\na = %f ", a); cord[2] = v_sum(&cord[0],&cord[1]); printf("\nv1+v2 = ( %f , %f , %f )", cord[2].x, cord[2].y, cord[2].z); cord[2] = v_dif(&cord[0],&cord[1]); printf("\nv1-v2 = ( %f , %f , %f )", cord[2].x, cord[2].y, cord[2].z); b = v_dot(&cord[0],&cord[1]); printf("\nv1.v2 = %f ", b); cord[2] = v_prod(&a,&cord[0]); printf("\na v1 = ( %f , %f , %f )", cord[2].x, cord[2].y, cord[2].z); cord[2] = v_cross(&cord[0],&cord[1]); printf("\nv1 x v2 = ( %f , %f , %f )", cord[2].x, cord[2].y, cord[2].z); b = v_mod_2(&cord[0]); printf("\nv1^2 = %f ", b); b = v_mod(&cord[0]); printf("\n|v1| = %f ", b); printf("\n\n"); return(0); }