|
我看了,求曲线程度的UF_CURVE_ask_arc_length这个函数,但是我写了后却没有用啊,求指教,我是新手,也不知道程序对还是不对,
$ [& @; |7 R& d9 f5 s UpdateData(true);
* t1 v) h9 j& N3 L: q+ z0 I tag_t part_tag;* [1 p8 |* }1 p
UF_PART_new("1",1,&part_tag); D% q: ^% y1 ~1 f8 ] I4 c9 W
tag_t line_tag;* s: `1 k! P, V
UF_CURVE_line_t line_coords; 2 |; f. G- v7 {5 R, h
line_coords.start_point[0]=x0;
, | J4 U7 C$ C* } line_coords.start_point[1]=y0;
& _: j" g( `( j( { line_coords.start_point[2]=z0;7 l3 j9 E$ V x% y4 r
line_coords.end_point[0]=x1;
8 s# i1 T6 [2 J3 J& U; o; i3 L line_coords.end_point[1]=y1;, M# i6 g! `, c8 l. |* p: ^
line_coords.end_point[2]=z1;
- q- S4 Y2 h4 s1 A UF_CURVE_create_line(&line_coords,&line_tag);//生成直线
1 {& I- L6 E3 Q2 X7 H/ r
: w$ G- \* c i: h char buffer[UF_UI_MAX_STRING_LEN];) P* E) w* h# p- z% R% k% s) l2 z
double parm;0 S9 K2 r& @9 H5 s6 Q9 z m
parm=0;
9 [& n8 X2 A* Q/ j7 P$ h! Y double point[3];
3 r) V( u/ o! _& N2 Y point[0]=x0;3 Y( d) n) E* D1 R" M) A) H( r
point[1]=y0;
$ g o1 [2 @6 f6 R; x; } point[2]=z0;- D7 F% \. y# L2 D' z
double tangent[3], p_norm[3], b_norm[3], torsion, rad_of_cur;$ o* C3 M: h# w& b n9 m
UF_MODL_ask_curve_props(line_tag,parm,point,tangent,p_norm,b_norm,&torsion,&rad_of_cur); $ N! B4 m. q" K; K; l! ^$ H
double point1[3];
3 w$ B3 ]6 D5 M' k Q7 K" s point1[0]=x1;6 [6 ^! ^- M1 Y- H
point1[1]=y1;/ `$ J; e9 b& D+ w
point1[2]=z1;
7 }, Y$ |3 W" G# W UF_MODL_ask_curve_props(line_tag,parm,point1,tangent,p_norm,b_norm,&torsion,&rad_of_cur);
* N" U; }2 u& V; q* V
+ S b) Q, B1 }/ P b' ^ tag_t curve_tag;8 H5 E5 p" L: D2 E
curve_tag=line_tag;% |( X, X8 S8 X. s- m
double start_param; e$ ?3 o+ f( \- r/ h
start_param=0.0;
4 W# g, k9 V) } `; Y( r double end_param;
$ o3 ]* P& [( s8 j6 H! k. F end_param=1.0;
9 ^- ~# X' C$ m2 `% N& o UF_MODL_units_t unit_flag;
$ p1 U2 M! j9 S: w% |0 A3 P: ?- M unit_flag=UF_MODL_UNITS_PART;; U4 J, P+ N, J' B- O
double *arc_length;. d1 m- m- ?7 I
UF_CURVE_ask_arc_length(curve_tag,start_param,end_param,unit_flag,arc_length);//计算曲线长度( k7 F' W0 k3 r4 r7 t4 y7 S
: t4 p9 _2 ~1 {, _0 ^5 A! X
char meassage[133]; ' b1 b3 ~8 B& b5 d1 k+ X- v# h1 e1 x7 x
sprintf(meassage, "%f\n",arc_length); 5 N/ u8 M# ~- ?
UF_UI_write_listing_window(meassage);
- x2 y* ^! [! Z6 D" |. {+ B& o5 t
& l0 z# s6 {; i. n2 J: D4 o ShowWindow(SW_MINIMIZE); |
|