|
悬赏15G币未解决
int UF_POINT_create_at_intersection_of_two_curves
5 X' p$ q% l4 D0 x: G/ |" e7 F(
% [% G% i5 C4 jconst tag_t curve1,
' U- u( Z4 ]: N+ Sconst tag_t curve2,
' V: W: w* _( ?/ _const tag_t help_point1, ! f; c) T. C3 L8 m# h; p
const tag_t help_point2,
1 {. B% E" a* E, c! e7 @6 itag_p_t point_feature_id
( L) Q) T( S% s) u2 t: A8 h)
% t4 ?; }* w+ {9 m6 d4 J8 n7 X 这个函数怎么用啊,特别是help_point1和help_point2是什么意思,为什么使用时老是报内存非法访问?
9 ]8 G% z' d$ m( | 代码如下:
$ ]6 [/ i+ S. m7 }" [3 w& r! O8 W% `+ }2 U ? F& o" j& d$ e
//选两直线* q. c H9 \, p' O5 X; S
char sCue[] = "按类选择对话框";$ i7 x: A% H+ M+ @" V
char sTitle[] = "按类选择对话框";
3 y; _" [- G6 O) C int iSope = UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;
* x7 b: h, e; g- G, L) J/ o int iResponse = 0; k7 u; j6 c5 A! V& N3 @' C' k6 ^; U
int iCount = 0;0 v* y5 Q2 `6 ^2 O5 T% R( Y/ v
tag_t *atObject = NULL;
: M6 ]( F9 _# L @ UF_UI_select_with_class_dialog(sCue, sTitle, iSope, init_proc, NULL, &iResponse, &iCount, &atObject);
( X& l' ~7 O8 [# {+ S; a) S$ `/ l+ E
2 p1 B! B& Z$ s- n$ y# t0 g$ ]9 D: N6 k tag_t tPointGet = NULL_TAG;
6 N+ w9 s7 ]% N int iPointNum = 0; ~! i. y0 f% o+ `9 H. \# b2 p) r
double *adPointPara;
. [; v+ Y+ I2 ^9 S4 q3 e double adTempPoint[3] = {0};
6 Z! o* x/ h' ]" p% a tag_t tPointStart = NULL_TAG;; a: m3 y3 _) b3 k1 v( O
tag_t tPointEnd = NULL_TAG;
- e+ @$ k1 Q1 l. P5 {& H
; c& q) d* B/ `# D+ {( Y if (2 == iCount)# D, h) _! S& t6 E) {" }
{
* x9 q. Q7 f: I" K//构造第一条直线的一个端点
& R2 [. F# D3 ^; ?* V8 Q2 x3 o UF_MODL_ask_curve_points(atObject[0], 0, 0, 0, &iPointNum, &adPointPara);
" c! `7 I& t0 o; A* q
. \; g7 W8 G# s/ _( g, J adTempPoint[0] = adPointPara[0];9 @- C2 ~, X1 Z1 r
adTempPoint[1] = adPointPara[1];* s# `$ @. @8 f' e
adTempPoint[2] = adPointPara[2];
5 g7 j9 H& N& z/ ], J: E5 p $ @% f( Z! r$ s" ?
UF_CURVE_create_point(adTempPoint , &tPointStart);
" c. B1 W2 w; M: u$ t# M
4 D9 t* ^, p& b3 q% M+ A0 v//构造第二条直线的一个端点
9 U( R9 k% x5 f; {* W UF_MODL_ask_curve_points(atObject[1], 0, 0, 0, &iPointNum, &adPointPara);, |& W: S) D/ D" u e) o4 \; c
! m6 ?3 D3 f% F6 @$ c adTempPoint[0] = adPointPara[0];
% `3 ]8 | W" _& g+ w0 k. ~/ ` adTempPoint[1] = adPointPara[1];/ M2 ~5 _. N4 h5 C
adTempPoint[2] = adPointPara[2];; ~9 |) B" H: X+ M: k6 Z
UF_CURVE_create_point(adTempPoint , &tPointEnd);
% U. D& x% U3 {' k( v& v* v: l2 E6 W. f+ a2 y* N) E
//求两直线的交点
+ m1 [" ]$ C- J; J l' [ UF_CALL(UF_POINT_create_at_intersection_of_two_curves(atObject[0], atObject[1], tPointStart, tPointEnd, &tPointGet));3 T5 V4 T6 a0 l: R6 g9 l: @
} |
|