Jump to content

  • Log In with Google      Sign In   
  • Create Account


_swx_

Member Since 04 Jun 2005
Offline Last Active Today, 05:07 AM
*****

Topics I've Started

Finding vector perpendicular to line in 3D

31 May 2010 - 12:26 PM

I need a robust method for finding any vector that is perpendicular to a line in 3D. I know that there is an infinite number of them, but I just need any one of them.

Determining whether an edge on a mesh is convex or concave

16 September 2008 - 01:21 AM

Can anyone suggest a robust way of determining whether an edge on a mesh is convex or concave? An edge is concave if the interior angle between the triangles connected by the edge is > 180 degrees, so any suggestion how to get that (or the exterior angle) would solve the problem.

Billboard Clouds

05 June 2005 - 02:20 AM

I've been trying to implement Billboard Clouds, as described in:

http://w3imagis.imag.fr/Publications/2003/DDSD03/bc03.pdf
http://www.vrvis.at/br1/billboardclouds/TR_VRVis_2004_039_Full.pdf

but I'm having some problems following some parts of it, most notably the appendix in bc03.pdf, where they calculate the range [rho_min,rho_max].

rho_plus_minus_ij = VMi.dj +- epsilon . Mi is the vertex and dj is the directional vector of a neighbour, but what is V?

Then I'm a little unsure about the calculation of rho_min and rho_max:
"We union these ranges on j and intersect them on i, that is rho_min = maximinj(rho_minus_ij) and rho_max = minimaxj(rho_plus_ij).

My current rho_min and rho_max calculation looks like:

float rho_minus[3][4];
float rho_plus[3][4];

// Calculate the elements somehow...

float min_values[3] = { rho_minus[0][0], rho_minus[1][0],rho_minus[2][0] },
			max_values[3] = { rho_plus[0][0], rho_plus[1][0], rho_plus[2][0] };
		
for( uint i=0;i<3;++i ) 
{
    for( uint j=1;j<4;++j ) 
    {
	if( rho_minus[i][j] < min_values[i]) min_values[i] = rho_minus[i][j];
	if( rho_plus[i][j] > max_values[i]) max_values[i] = rho_plus[i][j];
    }
}	
rho_min = MAX(MAX(min_values[0],min_values[1]),min_values[2]);
rho_max  = MIN(MIN(max_values[0],max_values[1]),max_values[2]);



Any help is appreciated.

PARTNERS