这段代码什么意思?帮忙回答下。

来源:百度知道 编辑:UC知道 时间:2024/07/05 02:55:04
EDPolygonInfo *pol;
EDPointInfo *pnt;
LWDVector *pos, *tangent, v1, v2;
int i, j, npoints, ccstart, ccend;
double vlen1, vlen2;

ccstart = ( pol->flags & EDPF_CCSTART ) != 0;
ccend = ( pol->flags & EDPF_CCEND ) != 0;

npoints = pol->numPnts + 2 - ( ccstart + ccend );
pos = calloc( npoints, sizeof( LWDVector ));
tangent = calloc( npoints, sizeof( LWDVector ));

for( i = 0; i < pol->numPnts; i++ ) {
pnt = edit->pointInfo( edit->state, pol->points[ i ] );
for( j = 0; j < 3; j++ )
pos[ i + !ccstart ][ j ] = pnt->position[ j ] ;
}

if ( !ccstart )
for ( j = 0; j < 3; j++ )
pos[ 0 ][ j ] = pos[ 3 ][ j ]
+ 3 * ( pos[ 1 ][ j ] - pos[ 2 ][ j ] );

if ( !ccend )
for ( j = 0; j < 3; j++ )
pos[ npoints - 1 ][ j ] = pos[

ccstart 和 ccend 的值只能是1或0,
[calloc( npoints, sizeof( LWDVector ))]
calloc:动态分配内存,npoints指向内存的首地址,内存的大小为sizeof( LWDVector )
只能看到这了,看不出具体是做什么用的.