平行(抜きアリ)・水平ライン(抜きなし)

平行線と水平線、垂直線のスクリプトです。
平行線は抜きアリで、スピード線として使えます。

3種をテキストでDL - 0line.txt
右クリックで保存してから、拡張子を.txt から.nas に変更してください。

DLして登録する場合、user_list.txtに
0line.txt draw_heiko #線/平行線
0line.nas draw_suihe #線/水平
0line.nas draw_suit #線/垂直

と書いてください。

スクリプトだけの場合、「続きを読む」にあります。

平行線、漫画のスピード線としてどうぞ。

void draw_heiko()
{
np_canvas c = get_active_canvas();

read_mouse_input(c,"軸の決定");
np_point p1 = get_mouse_point(c);

read_mouse_input(c,"平行線の決定");
np_point p2 = get_mouse_point(c);

read_mouse_input(c,"線を描く場所をクリック ESCキーで終了");
while (get_mouse_input_status(c) == 1) {
np_point p3 = get_mouse_point(c);

double i = (p2.y - p1.y) / (p2.x - p1.x);
double a = (p3.x - p1.x) * i ;
double y = p3.y - a ;

np_point p4;
p4.x = p1.x ;
p4.y = y ;

draw_line_prs(c,p4,1,p3,0);

read_mouse_input(c,"線を描く場所をクリック ESCキーで終了");
}
}


以下はキャンバスに対して水平(垂直)にしたい時。
集中線の応用で、水平線をひくスクリプトです。

void draw_suihe()
{
np_canvas c = get_active_canvas();

read_mouse_input(c,"軸をクリックで決定");
np_point p1 = get_mouse_point(c);

read_mouse_input(c,"線を描く場所をクリック ESCキーで終了");
while (get_mouse_input_status(c) == 1) {
np_point p2 = get_mouse_point(c);

np_point p3;
p3.x = p1.x ;
p3.y = p2.y ;

draw_line(c,p2,p3);

read_mouse_input(c,"線を描く場所をクリック ESCキーで終了");
}
}


垂直にしたい場合は
np_point p3;
p3.x = p1.x ;
p3.y = p2.y ;
を、
np_point p3;
p3.x = p2.x ;
p3.y = p1.y ;
に。
posted by むらせ at 2010年11月08日 16:23 | スクリプト | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。