@@ -73,10 +73,17 @@ def comp_v_on_v(Vals):
73
73
abs_v1 = abs_val (Vals [:3 ])
74
74
abs_v2 = abs_val (Vals [3 :])
75
75
76
- res_a_on_b = round (dot_prod / abs_v2 , 5 )
77
- a_on_b_val .set (res_a_on_b )
78
- res_b_on_a = round (dot_prod / abs_v1 , 5 )
79
- b_on_a_val .set (res_b_on_a )
76
+ try :
77
+ res_a_on_b = round (dot_prod / abs_v2 , 5 )
78
+ a_on_b_val .set (res_a_on_b )
79
+ except :
80
+ a_on_b_val .set ("Invalid" )
81
+
82
+ try :
83
+ res_b_on_a = round (dot_prod / abs_v1 , 5 )
84
+ b_on_a_val .set (res_b_on_a )
85
+ except :
86
+ b_on_a_val .set ("Invalid" )
80
87
81
88
82
89
def proj_v_on_v (Vals ):
@@ -85,21 +92,31 @@ def proj_v_on_v(Vals):
85
92
abs_v1 = abs_val (Vals [:3 ])
86
93
abs_v2 = abs_val (Vals [3 :])
87
94
88
- res_a_on_b = round (dot_prod / abs_v2 ** 2 , 5 )
89
- x_1 = res_a_on_b * Vals [3 ]
90
- y_1 = res_a_on_b * Vals [4 ]
91
- z_1 = res_a_on_b * Vals [5 ]
92
- a_on_b_proj_x_val .set (x_1 )
93
- a_on_b_proj_y_val .set (y_1 )
94
- a_on_b_proj_z_val .set (z_1 )
95
-
96
- res_b_on_a = round (dot_prod / abs_v1 ** 2 , 5 )
97
- x_2 = res_b_on_a * Vals [0 ]
98
- y_2 = res_b_on_a * Vals [1 ]
99
- z_2 = res_b_on_a * Vals [2 ]
100
- b_on_a_proj_x_val .set (x_2 )
101
- b_on_a_proj_y_val .set (y_2 )
102
- b_on_a_proj_z_val .set (z_2 )
95
+ try :
96
+ res_a_on_b = round (dot_prod / abs_v2 ** 2 , 5 )
97
+ x_1 = res_a_on_b * Vals [3 ]
98
+ y_1 = res_a_on_b * Vals [4 ]
99
+ z_1 = res_a_on_b * Vals [5 ]
100
+ a_on_b_proj_x_val .set (x_1 )
101
+ a_on_b_proj_y_val .set (y_1 )
102
+ a_on_b_proj_z_val .set (z_1 )
103
+ except :
104
+ a_on_b_proj_x_val .set ("Invalid" )
105
+ a_on_b_proj_y_val .set ("Invalid" )
106
+ a_on_b_proj_z_val .set ("Invalid" )
107
+
108
+ try :
109
+ res_b_on_a = round (dot_prod / abs_v1 ** 2 , 5 )
110
+ x_2 = res_b_on_a * Vals [0 ]
111
+ y_2 = res_b_on_a * Vals [1 ]
112
+ z_2 = res_b_on_a * Vals [2 ]
113
+ b_on_a_proj_x_val .set (x_2 )
114
+ b_on_a_proj_y_val .set (y_2 )
115
+ b_on_a_proj_z_val .set (z_2 )
116
+ except :
117
+ b_on_a_proj_x_val .set ("Invalid" )
118
+ b_on_a_proj_y_val .set ("Invalid" )
119
+ b_on_a_proj_z_val .set ("Invalid" )
103
120
104
121
Status ["text" ] = "Calculations Completed! :D "
105
122
Status ["fg" ] = "green"
@@ -150,9 +167,15 @@ def Show_Vec_Frame(vec_num, values):
150
167
Modulus_val .place (x = 70 , y = 11 , width = 80 )
151
168
152
169
# Unit Vectors
153
- uv_x = round (values [0 ]/ Modulus , 5 )
154
- uv_y = round (values [1 ]/ Modulus , 5 )
155
- uv_z = round (values [2 ]/ Modulus , 5 )
170
+ try :
171
+ uv_x = round (values [0 ]/ Modulus , 5 )
172
+ uv_y = round (values [1 ]/ Modulus , 5 )
173
+ uv_z = round (values [2 ]/ Modulus , 5 )
174
+ except :
175
+ uv_x = "Invalid"
176
+ uv_y = "Invalid"
177
+ uv_z = "Invalid"
178
+
156
179
Unit_Vector_lbl = Label (vec_window , text = "Unit Vector: " , anchor = E , font = ("Calibri" , 8 ))
157
180
uv_x_lbl = Label (vec_window , text = "X > " , anchor = E , font = ("Calibri" , 8 ))
158
181
uv_x_val = Text (vec_window , height = 1 , borderwidth = 0 )
@@ -171,9 +194,14 @@ def Show_Vec_Frame(vec_num, values):
171
194
uv_z_lbl .place (x = 25 , y = 90 )
172
195
uv_z_val .place (x = 50 , y = 91 , width = 80 )
173
196
174
- alpha = round (math .acos (uv_x ) * 180 / math .pi , 5 )
175
- beta = round (math .acos (uv_y ) * 180 / math .pi , 5 )
176
- gamma = round (math .acos (uv_z ) * 180 / math .pi , 5 )
197
+ if uv_x != "Invalid" :
198
+ alpha = round (math .acos (uv_x ) * 180 / math .pi , 5 )
199
+ beta = round (math .acos (uv_y ) * 180 / math .pi , 5 )
200
+ gamma = round (math .acos (uv_z ) * 180 / math .pi , 5 )
201
+ else :
202
+ alpha = "Invalid"
203
+ beta = "Invalid"
204
+ gamma = "Invalid"
177
205
Cosine_lbl = Label (vec_window , text = "Cosine Angles: " , anchor = E , font = ("Calibri" , 8 ))
178
206
alpha_lbl = Label (vec_window , text = "X > " , anchor = E , font = ("Calibri" , 8 ))
179
207
alpha_val = Text (vec_window , height = 1 , borderwidth = 0 )
0 commit comments