-
Notifications
You must be signed in to change notification settings - Fork 4
/
HerramientasCartecianas.py
65 lines (50 loc) · 2.61 KB
/
HerramientasCartecianas.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from math import degrees,radians,sin,atan
def longitudDe_LaRecta (punto_1 :list, punto_2 :list):
# _________________________
# /(X2 - X1)^2 + (Y2 - Y1)^2
return (((punto_2[0] - punto_1[0])**2) + ((punto_2[1] - punto_1[1])**2))**.5
def AngulosDe_LaRecta(punto_1 :list, punto_2 :list):
# (Y2 - Y1) _1 _.-`| (X1,Y1) a<
# m = --------- tan (m) m _.-` _|
# (X2 - X1) (X2,Y2) a< _.-`______|_|
m = (punto_2[1] - punto_1[1])/(punto_2[0] - punto_1[0])
angulos = dict()
angulos['X1,0'] = abs(degrees(atan(m)))
angulos['0,Y2'] = 90 - angulos['X1,0']
return angulos
def coordenadasCirculares(CoorDel_centro: list, RADIO ,NumDe_DivicionesDel_Circulo = 0, unidadesDe_Desplazamiento = 0, sentido =''):
x_centro = CoorDel_centro[0]
y_centro = CoorDel_centro[1]
x = y = 0
try:
unidadDe_DivicionDel_Circulo = 360 / NumDe_DivicionesDel_Circulo
except ZeroDivisionError:
return {'x': x_centro, 'y': y_centro}
if sentido == 'horario':
y = 90 - ((unidadDe_DivicionDel_Circulo * unidadesDe_Desplazamiento) + unidadDe_DivicionDel_Circulo)
x = 90 - abs(y)
elif sentido == 'antihorario':
x = - ((unidadDe_DivicionDel_Circulo * unidadesDe_Desplazamiento) + unidadDe_DivicionDel_Circulo)
y = 90 - abs(x)
else: # sentido Radial
x = 90 - (unidadDe_DivicionDel_Circulo * unidadesDe_Desplazamiento)
y = 90 - abs(x)
carteciano_x = (sin(radians(x)) * RADIO)
carteciano_y = (sin(radians(y)) * RADIO)
return {'x' : x_centro + carteciano_x, 'y' : y_centro - carteciano_y}
# x1+ -->
# y1+ +- - - - - |- - - - - - +
# | | . . 12. . |
# v | 11 | 1 |
#[oX +, oY -]__/ [-x, +y ] | 10 | 2 | [+x ,+y ] \__ [oX +, oY -]
# \ [+x1,+y1] |. | [oX,oY] . | [+x1,+y1] /
# ------------|9---------|/---------3 |-----------
# |. | . |
# | 8 | 4 |
#[oX +, oY -]__/ [-x, +y ] | 7 | 5 | [+x, -y ] \__ [oX +, oY -]
# \ [+x1,+y1] | . . 6 . . | [+x1,+y1] /
# +- - - - - |- - - - - - +
# |
if __name__ == '__main__':
XD = coordenadasCirculares([100,100], 100,12,2,'horario')
print(XD)