project.c

来自「su 的源代码库」· C语言 代码 · 共 64 行

C
64
字号
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       */#include "Triangles/triP.h"/*********************** self documentation **********************//*****************************************************************************PROJECT - project to edge in triangulated modelprojectToEdge - Project point with specified (x,y) coordinates to specified                edge******************************************************************************Function Prototype:void projectToEdge (Edge *e, float *x, float *y)******************************************************************************Input:e		edge to which point is to be projectedx		x-coordinate before projectiony		y-coordinate before projectionOutput:x		x-coordinate after projectiony		y-coordinate after projection******************************************************************************Author:  Dave Hale, Colorado School of Mines, 09/11/90******************************************************************************//**************** end self doc ********************************/void projectToEdge (Edge *e, float *x, float *y)/*****************************************************************************projectToEdge - Project point with specified (x,y) coordinates to specified                edge******************************************************************************Input:e		edge to which point is to be projectedx		x-coordinate before projectiony		y-coordinate before projectionOutput:x		x-coordinate after projectiony		y-coordinate after projection******************************************************************************Author:  Dave Hale, Colorado School of Mines, 09/11/90******************************************************************************/{	float x1,y1,x2,y2,x1mx,y1my,x2mx1,y2my1,t;	/* edge endpoints */	x1 = e->eu->vu->v->x;  y1 = e->eu->vu->v->y;	x2 = e->eu->euCW->vu->v->x;  y2 = e->eu->euCW->vu->v->y;		/* compute distance */	x1mx = x1-*x;  y1my = y1-*y;	x2mx1 = x2-x1;  y2my1 = y2-y1;	t = -(x1mx*x2mx1+y1my*y2my1)/(x2mx1*x2mx1+y2my1*y2my1);	if (t<0.0) t = 0.0;	if (t>1.0) t = 1.0;	*x = x1+t*x2mx1;	*y = y1+t*y2my1;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?