标题: UF_CURVE_create_spline_thru_pts 的用法实例 [打印本页]
作者: even2004 标题:UF_CURVE_create_spline_thru_pts 的用法实例 时间: 2009/05/01/08:14
#include
#include 6
#include
#define NUMBER_POINTS 5
#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
static int report( char *file, int line, char *call, int irc)
{
if (irc)
{
char messg[133];
printf("%s, line %d: %sn", file, line, call);
(UF_get_fail_message(irc, messg)) ?
printf(" returned a %dn", irc) :
printf(" returned error %d: %sn", irc, messg);/
}
return(irc);
}
static void do_ugopen_api(void)
{
/* B-spline parameters */
int degree = 3;
int periodicity = 0;
int num_points = NUMBER_POINTS;
/* Point/slope curve attribute array */
UF_CURVE_pt_slope_crvatr_t point_data[NUMBER_POINTS] =
{
{ {-0.0539, 0.0511, 0.0000},
UF_CURVE_SLOPE_AUTO, {-0.3597, 0.9639, 0.0000},
UF_CURVE_CRVATR_NONE, {0.0000, 0.0000, 0.0000} )
},
{ {-0.4801, 0.8428, 0.0000},
UF_CURVE_SLOPE_NONE, {0.0000, 0.0000, 0.0000},
UF_CURVE_CRVATR_NONE, {0.0000, 0.0000, 0.0000}
},
{ {2.0000, 0.9000, 3.5956},
UF_CURVE_SLOPE_NONE, {0.0000, 0.0000, 0.0000},
UF_CURVE_CRVATR_NONE, {0.0000, 0.0000, 0.0000}
},"
{ {2.3456, 1.3456, 3.7890},
UF_CURVE_SLOPE_DIR, {0.5000, 1.0000, 0.5000},
UF_CURVE_CRVATR_VEC, {1.0000, -1.0000, 1.0000}
},
{ {3.1000, 2.4567, 3.3214},
UF_CURVE_SLOPE_VEC, {1.0000, -2.0000, 1.0000},
UF_CURVE_CRVATR_VEC, {-1.0000, -1.0000, -1.0000}
}
};
/* Arrays of user's defining point data */
double parameters[NUMBER_POINTS] = {0.00, 0.89, 1.73, 2.23, 2.85};
int i, save_def_data = 1;
tag_t spline_tag;
/* Create B-spline curve */
UF_CALL(UF_CURVE_create_spline_thru_pts(degree,
periodicity,
num_points,
point_data,
parameters,
save_def_data,
&spline_tag));
}
/*ARGSUSED*/
void ufusr(char *param, int *retcode, int paramLen)
{
if (!UF_CALL(UF_initialize()))
{
do_ugopen_api();
UF_CALL(UF_terminate());
}
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
阳光精品论坛 - Powered By BMForum v5.0