from math import *
from punto import *
class Viviani:
def __init__(self, semRaggio):
"""Costruttore"""
self.a=abs(semRaggio)
def calcolo(self, alfa, p):
"""Calcola le coordinate del punto"""
p.x=self.a * (1.0 + cos(alfa))
p.y=self.a * sin(alfa)
p.z=2.0 * self.a * sin(0.5 * alfa)
return p
def calcolo_parametrico(self, p1, p2):
"""Calcola le coordinate del punto"""
p1.x=2.0 * self.a - ((p1.z*p1.z) / (2.0*self.a))
p1.y=abs(p1.z * 0.5) * sqrt(4.0 - ((p1.z*p1.z)/(self.a * self.a)))
p2.x=p1.x
p2.y=-1.0 * p1.y
p2.z=p1.z