|
#include
3 v2 ?# Z* I/ {( z: ?#include 6 " v$ Z" C. o/ Z# n0 E" _
#include
) n5 R* Z; o7 F( d#define NUMBER_POINTS 5 % c7 u* w) Q1 t3 @; N
#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
2 d* X% ?0 }! n/ u8 mstatic int report( char *file, int line, char *call, int irc)
. ~& Y5 J+ d$ P q" |/ ]' k; M$ p# ?8 A{
$ B# D* N8 W; E8 h2 j: F: I if (irc)
8 ~; J2 p1 |: ?0 | Z9 X( T { ' O1 g4 x I# f! z' {6 M6 S
char messg[133];
% |! B$ j- Z) @- V. z printf("%s, line %d: %sn", file, line, call); ; v# X* L' J+ Y' |1 S
(UF_get_fail_message(irc, messg)) ? ; A- H& I3 r2 P/ S
printf(" returned a %dn", irc) : 5 [! A5 i, G! g5 D6 L9 T
printf(" returned error %d: %sn", irc, messg);/
! N' i# f4 x% z, `6 R! x% `8 I& Y( s }
5 {, |- q0 r. \0 C9 F9 \+ v return(irc);
, O3 y6 q) a- B. b) P+ V}
, E8 L4 O9 q3 U$ k& [2 ystatic void do_ugopen_api(void) 0 G1 R% X! j- |$ |7 j
{
0 N: p+ I% Y( d% `3 b) _$ |/* B-spline parameters */
6 ~5 s) h7 D2 G2 _+ }. Qint degree = 3;
- T' ]+ q- H! S: l& Xint periodicity = 0;
4 V1 f3 [) M) e7 p. [int num_points = NUMBER_POINTS; 1 |" s3 j5 k4 r/ d% W# V
/* Point/slope curve attribute array */
( |3 c+ h$ D5 EUF_CURVE_pt_slope_crvatr_t point_data[NUMBER_POINTS] =
" Z9 u& n* u5 A5 x1 y! Q! e { y" D8 U$ h/ M$ L0 ~
{ {-0.0539, 0.0511, 0.0000},
) H. U0 o+ U7 L: e0 q UF_CURVE_SLOPE_AUTO, {-0.3597, 0.9639, 0.0000},
8 f$ P) R& l1 q UF_CURVE_CRVATR_NONE, {0.0000, 0.0000, 0.0000} )
. ^& T) B1 q# O0 s+ | },
/ ~; w, l2 z6 [" @ { { {-0.4801, 0.8428, 0.0000}, : ~' Q, E/ C: }
UF_CURVE_SLOPE_NONE, {0.0000, 0.0000, 0.0000}, 3 L9 u6 e' e9 s z" Z
UF_CURVE_CRVATR_NONE, {0.0000, 0.0000, 0.0000} 3 g4 f! x0 \' }% J* X% |
}, / E' P7 }6 o" [; J: Q: i' Q8 z
{ {2.0000, 0.9000, 3.5956},
) B) Y1 y3 y8 m0 t4 h. P- r UF_CURVE_SLOPE_NONE, {0.0000, 0.0000, 0.0000}, k) n" i2 v- F" O
UF_CURVE_CRVATR_NONE, {0.0000, 0.0000, 0.0000}
# p+ `7 N, X6 f* n$ Q },"
% K) n! H) J9 H% [; O( u( e7 G { {2.3456, 1.3456, 3.7890},
. w3 F) k: H& o, v UF_CURVE_SLOPE_DIR, {0.5000, 1.0000, 0.5000}, & ^, @ L! }! o- X
UF_CURVE_CRVATR_VEC, {1.0000, -1.0000, 1.0000} 1 H& g5 s: \# s6 P8 m' B" b
}, { {3.1000, 2.4567, 3.3214}, 1 |! y% s/ i! l* N8 a9 O( F! k: P
UF_CURVE_SLOPE_VEC, {1.0000, -2.0000, 1.0000},
4 @. q+ ^' O& Z UF_CURVE_CRVATR_VEC, {-1.0000, -1.0000, -1.0000} } / _/ A& }/ i5 x
};
9 O x# X5 E5 Q0 g4 S3 l: W
+ ?; H- e, D0 n8 i( d' }9 n# i7 p/* Arrays of user's defining point data */
4 a4 T3 U* g/ w3 fdouble parameters[NUMBER_POINTS] = {0.00, 0.89, 1.73, 2.23, 2.85}; 1 J' V' p! d6 u5 O
int i, save_def_data = 1; & |6 e# ]! j* Y) u# W2 e C0 H0 [ y
tag_t spline_tag;
% _, C. B; t/ w+ M# U: f3 D. C5 P1 l R& v& V' b4 J
/* Create B-spline curve */ , H1 g9 | P. A L6 b1 I# W( Z
UF_CALL(UF_CURVE_create_spline_thru_pts(degree, 5 L8 [) K/ k0 `* Y
periodicity,
7 X& j7 j2 s' |; i% } num_points, * Y# ~/ m6 O0 s$ t
point_data, ) ~, D# S' _/ U6 m2 S
parameters,
/ `9 ` k2 F3 i q save_def_data, 9 ^% n. g/ q# t% f! t: j4 s" W
&spline_tag));
) H7 y6 ?' |0 x( F. H0 t}
# \" B3 k) q: ^& J& o9 c+ `8 V y/*ARGSUSED*/ 4 P+ ]) L3 J7 J4 E z% M; X+ I. j$ Z
void ufusr(char *param, int *retcode, int paramLen) 0 a. q' l5 i/ d& Y' { {
{
) x4 n. t0 D2 L G: F. h if (!UF_CALL(UF_initialize()))
$ k7 F. z' Y5 k% g- D. ^ { ( Q* c1 f% ]1 {' t
do_UGopen_api(); 4 Z" p; U% n7 R
UF_CALL(UF_terminate()); # j' I7 G) Q/ I9 u7 M9 I( _' t
} 1 d, F; y$ v: ?( v
} 8 R2 |& L4 i/ o( f' L/ Q* _# P
int ufusr_ask_unload(void) ) e7 {: V# q* g) l
{
5 [2 Y3 y+ b( ?) v- \% ? return (UF_UNLOAD_IMMEDIATELY); ( X7 F$ k, G& z+ G' x
}
& ^2 N, q) q7 |( w+ J/ a' I3 V请问程序中的红色的那段程序是不是表示斜率?后面的数字表示什么?
9 T" |: S" a: e4 ]: z+ O% P) u! [ |
|