Code archives/3D Graphics - Mesh/TriangleNX#(), TriangleNY#(), TriangleNZ#()

This code has been declared by its author to be Public Domain code.

Download source code

TriangleNX#(), TriangleNY#(), TriangleNZ#() by simonh2002
Returns the x, y, z normals of a particular triangle
Function TriangleNX#(surf,tri_no)

	v0=TriangleVertex(surf,tri_no,0)
	v1=TriangleVertex(surf,tri_no,1)
	v2=TriangleVertex(surf,tri_no,2)
	
	ax#=VertexX#(surf,v1)-VertexX#(surf,v0)
	ay#=VertexY#(surf,v1)-VertexY#(surf,v0)
	az#=VertexZ#(surf,v1)-VertexZ#(surf,v0)
	
	bx#=VertexX#(surf,v2)-VertexX#(surf,v1)
	by#=VertexY#(surf,v2)-VertexY#(surf,v1)
	bz#=VertexZ#(surf,v2)-VertexZ#(surf,v1)
	
	nx#=(ay#*bz#)-(az#*by#)
	
	Return nx#

End Function


Function TriangleNY#(surf,tri_no)

	v0=TriangleVertex(surf,tri_no,0)
	v1=TriangleVertex(surf,tri_no,1)
	v2=TriangleVertex(surf,tri_no,2)
	
	ax#=VertexX#(surf,v1)-VertexX#(surf,v0)
	ay#=VertexY#(surf,v1)-VertexY#(surf,v0)
	az#=VertexZ#(surf,v1)-VertexZ#(surf,v0)
	
	bx#=VertexX#(surf,v2)-VertexX#(surf,v1)
	by#=VertexY#(surf,v2)-VertexY#(surf,v1)
	bz#=VertexZ#(surf,v2)-VertexZ#(surf,v1)
	
	ny#=(az#*bx#)-(ax#*bz#)
	
	Return ny#

End Function


Function TriangleNZ#(surf,tri_no)

	v0=TriangleVertex(surf,tri_no,0)
	v1=TriangleVertex(surf,tri_no,1)
	v2=TriangleVertex(surf,tri_no,2)
	
	ax#=VertexX#(surf,v1)-VertexX#(surf,v0)
	ay#=VertexY#(surf,v1)-VertexY#(surf,v0)
	az#=VertexZ#(surf,v1)-VertexZ#(surf,v0)
	
	bx#=VertexX#(surf,v2)-VertexX#(surf,v1)
	by#=VertexY#(surf,v2)-VertexY#(surf,v1)
	bz#=VertexZ#(surf,v2)-VertexZ#(surf,v1)
	
	nz#=(ax#*by#)-(ay#*bx#)
	
	Return nz#

End Function

Comments

None.

Code Archives Forum