⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tri2uni.c

📁 su 的源代码库
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       *//* TRI2UNI: $Revision: 1.2 $ ; $Date: 1996/09/09 17:06:35 $	*/#include "par.h"#include "Triangles/tri.h"#include "Triangles/sloth.h"/*********************** self documentation **********************/char *sdoc[] = {" TRI2UNI - convert a TRIangulated model to UNIformly sampled model	","									"," tri2uni <triangfile >uniformfile n2= n1= [optional parameters]	","									"," Required Parameters:							"," n1=                     number of samples in the first (fast) dimension"," n2=                     number of samples in the second dimension	","									"," Optional Parameters:							"," d1=1.0                 sampling interval in first (fast) dimension	"," d2=1.0                 sampling interval in second dimension		"," f1=0.0                 first value in dimension 1 sampled		"," f2=0.0                 first value in dimension 2 sampled		","									"," Note:									"," The triangulated/uniformly-sampled quantity is assumed to be sloth=1/v^2","									",NULL};/* * * AUTHOR:  Dave Hale, Colorado School of Mines, 04/23/91 * *//**************** end self doc ***********************************//* the main program */int main (int argc, char **argv){	int n2,n1,ix,iz;	float d2,f2,d1,f1,x,z,xmin,xmax,zmin,zmax,**s;	Tri *t;	TriAttributes *ta;	Model *m;	/* hook up getpar to handle the parameters */	initargs(argc,argv);	requestdoc(0);	/* get required parameters */	if (!getparint("n1",&n1)) err("must specify n1!");	if (!getparint("n2",&n2)) err("must specify n2!");	/* get optional parameters */	if (!getparfloat("d1",&d1)) d1 = 1.0;	if (!getparfloat("d2",&d2)) d2 = 1.0;	if (!getparfloat("f1",&f1)) f1 = 0.0;	if (!getparfloat("f2",&f2)) f2 = 0.0;	/* read input triangulated sloth model */	m = readModel(stdin);	/* determine min and max x and z coordinates */	xmin = m->ymin;	xmax = m->ymax;	zmin = m->xmin;	zmax = m->xmax;	/* allocate space for uniformly sampled sloth */	s = ealloc2float(n1,n2);	/* loop over all samples */	for (ix=0,x=f2,t=NULL; ix<n2; ++ix,x+=d2) {		if (ABS(x-xmin)<0.01*d2) x = xmin;		if (ABS(x-xmax)<0.01*d2) x = xmax;		if (x<xmin || x>xmax)			err("x=%g must be between xmin=%g and xmax=%g",				x,xmin,xmax);		for (iz=0,z=f1; iz<n1; ++iz,z+=d1) {			if (ABS(z-zmin)<0.01*d1) z = zmin;			if (ABS(z-zmax)<0.01*d1) z = zmax;			if (z<zmin || z>zmax)				err("z=%g must be between zmin=%g and zmax=%g",					z,zmin,zmax);			t = insideTriInModel(m,t,z,x);			ta = (TriAttributes*)t->fa;			s[ix][iz] = ta->s00+x*ta->dsdx+z*ta->dsdz;		}	}	/* write uniformly sampled sloth */	fwrite(s[0],sizeof(float),n1*n2,stdout);	return EXIT_SUCCESS;}

⌨️ 快捷键说明

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