|
悬赏15G币未解决
int UF_POINT_create_at_intersection_of_two_curves
( y- a( v, A; p5 f4 Q+ {(
Q8 }4 Y3 x3 H, ~) [6 G0 u* Q8 gconst tag_t curve1,
" E& f3 m3 J- o! t' _const tag_t curve2, " b! O |( b: H9 Q6 ?, a/ S. a3 K
const tag_t help_point1,
! s8 _6 c* f" s" U4 [% C) kconst tag_t help_point2, " `" \; J/ \) V4 C% y3 Q& j
tag_p_t point_feature_id 6 b) {( }2 L* z% m3 @( w/ O) ]
); J9 ^: m& o( a, k
这个函数怎么用啊,特别是help_point1和help_point2是什么意思,为什么使用时老是报内存非法访问?
: C2 M6 v$ v( w1 h 代码如下:6 u" J( X: \- \7 z. ?4 N
: Y: \! r. B( X1 U7 c, B9 D3 J
//选两直线3 d; y$ v6 d: J( ]+ S" ~9 z" T
char sCue[] = "按类选择对话框";" F$ p$ u- L6 I2 @) Y W' s4 A
char sTitle[] = "按类选择对话框";$ c/ g$ t7 J: d
int iSope = UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;1 I6 I/ U7 {- b! Y: H
int iResponse = 0;
! }" a3 `) L5 g int iCount = 0;
2 J& M; p* p8 }. j1 l/ `8 A tag_t *atObject = NULL;3 O& g: G2 [7 V- @
UF_UI_select_with_class_dialog(sCue, sTitle, iSope, init_proc, NULL, &iResponse, &iCount, &atObject);
4 z. R" f# m" I. ]
1 e7 C# M* z V. S3 r, w1 ] tag_t tPointGet = NULL_TAG;
) ~1 M, r) F+ Z3 ^1 A! F! G int iPointNum = 0;0 t. M; m0 ]# H+ F
double *adPointPara;+ E$ j) T% p) y4 B, k# }# @
double adTempPoint[3] = {0};) P; J9 c3 P7 M
tag_t tPointStart = NULL_TAG;, y4 _7 a; ^7 {
tag_t tPointEnd = NULL_TAG;
5 ~% G4 t1 A! W9 x5 ^
+ b" c3 B5 w8 x0 j$ N" ? if (2 == iCount)( e7 r) [+ i* P$ E
{
* O* k2 z( l$ o# c//构造第一条直线的一个端点
3 p1 U P( H% U8 V4 U8 ] UF_MODL_ask_curve_points(atObject[0], 0, 0, 0, &iPointNum, &adPointPara);3 u( W3 J2 X0 v7 ]. [; X7 w
- A3 c7 z; X0 ~, m$ d% P adTempPoint[0] = adPointPara[0];
+ T& z8 K2 w6 ~& f9 B2 G5 X adTempPoint[1] = adPointPara[1];5 j) |9 ~! ^- G! v
adTempPoint[2] = adPointPara[2];
5 z. g2 n* N( I; o1 r$ d, o E+ U4 ?6 h# T
UF_CURVE_create_point(adTempPoint , &tPointStart);2 P! J/ T! S: q
1 d/ d9 _( ~, b6 W" ^- A
//构造第二条直线的一个端点 g% a8 w3 z5 a8 U' \
UF_MODL_ask_curve_points(atObject[1], 0, 0, 0, &iPointNum, &adPointPara);
$ |, o# @7 E+ I6 {/ z 9 R1 x5 y/ H/ [ \8 z" i
adTempPoint[0] = adPointPara[0];
8 a; j# {. u9 V$ t7 E- V/ `* ~ adTempPoint[1] = adPointPara[1];& r# X) M; z9 u) v6 Y) z! |
adTempPoint[2] = adPointPara[2];
! p6 \) |3 a9 z* t UF_CURVE_create_point(adTempPoint , &tPointEnd);
0 d V6 Z# c8 \" \
4 ^$ R+ r8 H" k5 Q$ H//求两直线的交点6 Z) Q" S4 x, e% [6 }' P
UF_CALL(UF_POINT_create_at_intersection_of_two_curves(atObject[0], atObject[1], tPointStart, tPointEnd, &tPointGet));8 Z! Z2 \& d% M6 M% @6 W
} |
|