Esempio n. 1
0
// distancia entre o ponto P e a reta formada pelos pontos Q e R
// d = ||QP x  QR|| / ||QR||
double distPontoReta(double P[], double Q[], double R[]) {
	// vetor v da reta R
	double v[3];
	vetor(v, Q, R);
	// vetor w de um ponto de r até P
	double w[3];
	vetor(w, P, Q);
	//  produto vetorial ||QP x QR||
	double prod[3];
	prodVet(prod, w, v);
	// retorna ||QP x  QR|| / ||QR||
	return normaVet(prod) / normaVet(v);
}
Esempio n. 2
0
File: util.cpp Progetto: tfc2/if680
dVector ortogonalizacao(const dVector u, const dVector v)
{
    double escalar = produtoEscalar(u, v) / produtoEscalar(v, v);
    dVector vetor(u.size());
    for(int i = 0;i< u.size();i++)vetor[i]=u[i] - escalar*v[i];
    return vetor;
}
Esempio n. 3
0
File: util.cpp Progetto: tfc2/if680
dVector multiplicacaoN1(const dMatrix &m1, const dVector &v2)
{
    dVector vetor (m1[0].size());
	for (int i = 0; i < m1.size(); ++i)
        for (int j = 0; j < m1[0].size(); ++j)
            vetor[i] += m1[i][j] * v2[j];
	 return vetor;
}
Esempio n. 4
0
int main()
{
   ler();
   vetor();
   calcule();
   imprime();
   return 0;
}
Esempio n. 5
0
// verifica se um segmento de reta intercepta um plano
// e, se existir, retorna o ponto de interceptação q
int interceptaSegmentoPlano(Ponto a, Ponto b, Plano p, double &t, Ponto &q)
{
    // Compute the t value for the directed line ab intersecting the plane
    Vetor ab; vetor(ab, a, b);
    t = (p.d - dotVet(p.n, a)) / dotVet(p.n, ab);
    // If t in [0..1] compute and return intersection point
    if (t >= 0.0 && t <= 1.0) {
        cpVet(q, ab);
        multPEsc(q, t);
        somaVet(q, a);
        return 1;
    }
    // Else no intersection
    return 0;
}
Esempio n. 6
0
File: 23.c Progetto: ualexsj/lab1_2
int main() 
{
	int vet[]={1,2,3,4,5,6,7,8,9,10};
    vetor(vet);
    return 0;
}