/* debugmode(true); */ /* have not figured how to include another file */ add(c,a,b) := ( put(c, get(a, 'x) + get(b, 'x), 'x), put(c, get(a, 'y) + get(b, 'y), 'y), put(c, get(a, 'z) + get(b, 'z), 'z) ); subtract(c,a,b) := ( put(c, get(a, 'x) - get(b, 'x), 'x), put(c, get(a, 'y) - get(b, 'y), 'y), put(c, get(a, 'z) - get(b, 'z), 'z) ); dot(a,b) := ( get(a, 'x) * get(b, 'x) + get(a, 'y) * get(b, 'y) + get(a, 'z) * get(b, 'z) ); magnitude(a) := ( sqrt(dot(a,a)) ); direction_r(a) := ( atan2(get(a, 'y), get(a, 'x)) ); direction_d(a) := ( atan2(get(a, 'y), get(a, 'x)) * 90.0 / asin(1.0) ); cross(c,a,b) := ( put(c, get(a, 'y) * get(b, 'z) - get(b, 'y) * get(a, 'z), 'x), put(c, -( get(a, 'x) * get(b, 'z) - get(b, 'x) * get(a, 'z)), 'y), put(c, get(a, 'x) * get(b, 'y) - get(b, 'x) * get(a, 'y), 'z) ); print_vector( a ) := ( print( a, " = ", get( a, 'x ), "i + ", get( a, 'y ),"j + ", get( a, 'z ), "k") ); main() := ( /* declare local variables */ /* block(modedeclare[my_height_feet, my_height_meters],float), */ put(a, 4.0, 'x), put(a, -3.0, 'y), put(a, 0.0, 'z), put(b, 6.0, 'x), put(b, 8.0, 'y), put(b, 0.0, 'z), get(a, 'x), get(a, 'y), get(a, 'z), get(b, 'x), get(b, 'y), get(b, 'z), add(c,a,b), subtract(d,b,a), subtract(e,a,b), put(f, 2.0, 'x), put(f, -3.0, 'y), put(f, 7.0, 'z), put(g, 12.0, 'x), put(g, 45.0, 'y), put(g, -8.0, 'z), put(h, -5.0, 'x), put(h, -3.0, 'y), put(h, 42.0, 'z), print_vector(a), print_vector(b), print_vector(c), print_vector(d), print_vector(e), print_vector(f), print_vector(g), print_vector(h), print("magnitude of a = ",magnitude(a)), print("magnitude of b = ",magnitude(b)), print("magnitude of c = ",magnitude(c)), print("magnitude of d = ",magnitude(d)), print("magnitude of e = ",magnitude(e)), print("direction of a in radians = ", direction_r(a)), print("direction of b in radians = ", direction_r(b)), print("direction of c in radians = ", direction_r(c)), print("direction of d in radians = ", direction_r(d)), print("direction of e in radians = ", direction_r(e)), print("direction of a in degrees = ", direction_d(a)), print("direction of b in degrees = ", direction_d(b)), print("direction of c in degrees = ", direction_d(c)), print("direction of d in degrees = ", direction_d(d)), print("direction of e in degrees = ", direction_d(e)), print("a dot a = ",dot(a,a)), print("a dot b = ",dot(a,b)), print("b dot a = ",dot(b,a)), print("a dot c = ",dot(a,c)), print("d dot a = ",dot(d,a)), print("a dot e = ",dot(a,e)), print("e dot a = ",dot(e,a)), cross(aca,a,a), cross(acb,a,b), cross(bca,b,a), cross(acc,a,c), cross(dca,d,a), cross(ace,a,e), cross(eca,e,a), cross(fcg,f,g), cross(fch,f,h), cross(gch,g,h), cross(gcf,g,f), cross(hcf,h,f), cross(hcg,h,g), print_vector(aca), print_vector(acb), print_vector(bca), print_vector(acc), print_vector(dca), print_vector(ace), print_vector(eca), print_vector(fcg), print_vector(fch), print_vector(gch), print_vector(gcf), print_vector(hcf), print_vector(hcg) ); main();