点線を描画

/**
* 点線を描画
*/
void drawLine2( HDC hdc, const POINT& start, const POINT& end, int width )
{
CDC* dc = CDC::FromHandle( hdc );
if( !dc ) return;

ASSERT( width > 0 );

// 全体の長さ
double length = calcDistance( start, end );

double part_length = 10.0 + (double)width;

double sum = 0.0;

double radian = getRadian( start, end );

POINT part_start = start;
POINT part_end;

while( sum < length ){
// 終点を求める
part_end = getPoint( radian, part_length, part_start );

sum += part_length;

// 終点を超えてないか
if( sum > length ){
part_end = getPoint( radian, sum - length, part_start );//part_end = end;
break;//test
}

dc->MoveTo( part_start );
dc->LineTo( part_end );

// 始点を求める
part_start = getPoint( radian, part_length, part_end );

sum += part_length;
}
}
最終更新:2009年04月03日 14:16
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。