/// <summary> /// Função para calcular um ponto sobre o perímetro de um círculo informando um ângulo e raio. /// </summary> /// <param name="angulo"></param> /// <param name="raio"></param> /// <returns></returns> public static Ponto4D GerarPtosCirculo(double angulo, double raio) { Ponto4D pto = new Ponto4D(); pto.X = (raio * Math.Cos(Math.PI * angulo / 180.0)); pto.Y = (raio * Math.Sin(Math.PI * angulo / 180.0)); pto.Z = 0; return(pto); }
public void Atribuir(Ponto4D pto) { this.menorX = pto.X; this.menorY = pto.Y; this.menorZ = pto.Z; this.maiorX = pto.X; this.maiorY = pto.Y; this.maiorZ = pto.Z; }
public void Atribuir(Ponto4D pontoMin, Ponto4D pontoMax) { this.menorX = pontoMin.X; this.menorY = pontoMin.Y; this.menorZ = pontoMin.Z; this.maiorX = pontoMax.X; this.maiorY = pontoMax.Y; this.maiorZ = pontoMax.Z; }
//TODO: tentar usar Const // public Ponto4D MultiplicarPonto(in Ponto4D pto) // { // pto.X = 3; public Ponto4D MultiplicarPonto(Ponto4D pto) { Ponto4D pointResult = new Ponto4D( matriz[0] * pto.X + matriz[4] * pto.Y + matriz[8] * pto.Z + matriz[12] * pto.W, matriz[1] * pto.X + matriz[5] * pto.Y + matriz[9] * pto.Z + matriz[13] * pto.W, matriz[2] * pto.X + matriz[6] * pto.Y + matriz[10] * pto.Z + matriz[14] * pto.W, matriz[3] * pto.X + matriz[7] * pto.Y + matriz[11] * pto.Z + matriz[15] * pto.W); return(pointResult); }
public void Atualizar(Ponto4D pto) { Atualizar(pto.X, pto.Y, pto.Z); }