PHPで作図
このページの末尾へ
図形のコピー
: ロータリー・エンジンのローター包絡線
ヘルプ
ドット数(幅
高
)形式(
gif
jpg
)
set_scale($scale = 10, $org_x_percent = 50, $org_y_percent = 50); //draw_xyaxis(); $ang2_a = M_PI; $ang2_b = M_PI - 2 * M_PI * 2; draw_text('ロータリー・エンジンのローター包絡線', $x -15, $y = 15, O_POS_UP_LEFT, $italic = false); //allocate_text_color("#008800"); //draw_text('トロコイド定数R/e=7(マツダ RE)', $x -15, $y = 15 - ($j + 1) * 1.5, O_POS_UP_LEFT, $italic = false); $rad1 = 2; $rad2 = $rad1 * 3 / 2; $e = $rad2 - $rad1; $R = 7.0 * $e; $TR = sqrt(3) * $R; for($pj = 0; $pj < 3; ++$pj){ $pi = $pj; $c1x = $pi * 6 - 6; $c1y = 7 - $pj * 7; draw_text($pj + 1, $c1x - 8, $c1y - 5, O_POS_LOW_LEFT, $italic = false); $div = 100; for($i = 0; $i <= $div; ++$i){ $ang2 = (($div - $i) * $ang2_a + $i * $ang2_b) / $div; //allocate_color('red'); //draw_mark($i * 10 / $div, $ang2, $angle = 0, MARK_DOT); $dang2 = $ang2 - $ang2_a;//- //allocate_color('#00FFFF');//Aqua //draw_mark($i * 10 / $div, $dang2, $angle = 0, MARK_DOT); $len2 = $dang2 * $rad2;//- //allocate_color('green'); //draw_mark($i * 10 / $div, $len2, $angle = 0, MARK_DOT); $dang1 = $len2 / $rad1;//- //allocate_color('blue'); //draw_mark($i * 10 / $div, $dang1, $angle = 0, MARK_DOT); $ang_p = M_PI + $dang1; //allocate_color('#800000');//Maroon //draw_mark($i * 10 / $div, $ang_p, $angle = 0, MARK_DOT); //$p1x = $rad1 * cos($ang_p) + $c1x; //$p1y = $rad1 * sin($ang_p) + $c1y; $ang_e = $ang_p - M_PI; //allocate_color('#008080');//Teal //draw_mark($i * 10 / $div, $ang_e, $angle = 0, MARK_DOT); $c2x = $e * cos($ang_e) + $c1x; $c2y = $e * sin($ang_e) + $c1y; $ang3 = $ang_p - $dang2 - M_PI; //allocate_color('#800080');//Purple //draw_mark($i * 10 / $div, $ang_e, $angle = 0, MARK_DOT); if(($pj == 0 && fmod($i, 6) == 0 && $i < 33) || ($pj == 1 && fmod($i, 3) == 0 && $i < 33) || ($pj == 2) ){ for($k = 0; $k < 3; ++$k){ $ang4 = $ang3 + $k * M_PI * 2 / 3; $apx = $R * cos($ang4) + $c2x; $apy = $R * sin($ang4) + $c2y; //allocate_color("red"); //draw_mark($apx, $apy, $angle = 0, MARK_DOT); allocate_color("#00".sprintf("%02x", fmod($i, 32) * 8)."FF"); draw_arc($apx, $apy, $TR, $ang4 + M_PI * 5 / 6, $ang4 + M_PI * 5 / 6 + M_PI / 3); draw_circle($c2x, $c2y, $rad2); } } } $sx = 0; $sy = 0; for($i = 0; $i <= $div; ++$i){ $ang2 = (($div - $i) * $ang2_a + $i * $ang2_b) / $div; //allocate_color('red'); //draw_mark($i * 10 / $div, $ang2, $angle = 0, MARK_DOT); $dang2 = $ang2 - $ang2_a;//- //allocate_color('#00FFFF');//Aqua //draw_mark($i * 10 / $div, $dang2, $angle = 0, MARK_DOT); $len2 = $dang2 * $rad2;//- //allocate_color('green'); //draw_mark($i * 10 / $div, $len2, $angle = 0, MARK_DOT); $dang1 = $len2 / $rad1;//- //allocate_color('blue'); //draw_mark($i * 10 / $div, $dang1, $angle = 0, MARK_DOT); $ang_p = M_PI + $dang1; //allocate_color('#800000');//Maroon //draw_mark($i * 10 / $div, $ang_p, $angle = 0, MARK_DOT); //$p1x = $rad1 * cos($ang_p) + $c1x; //$p1y = $rad1 * sin($ang_p) + $c1y; $ang_e = $ang_p - M_PI; //allocate_color('#008080');//Teal //draw_mark($i * 10 / $div, $ang_e, $angle = 0, MARK_DOT); $c2x = $e * cos($ang_e) + $c1x; $c2y = $e * sin($ang_e) + $c1y; $ang3 = $ang_p - $dang2 - M_PI; //allocate_color('#800080');//Purple //draw_mark($i * 10 / $div, $ang_e, $angle = 0, MARK_DOT); $tx = $R * cos($ang3) + $c2x; $ty = $R * sin($ang3) + $c2y; if($i > 0){ allocate_color("#ff0000"); draw_line($sx, $sy, $tx, $ty); } $sx = $tx; $sy = $ty; } allocate_color("#ff0000"); draw_circle($c1x, $c1y, $rad1); }
テンプレートを選択するとプログラムに追加されます。
set_scale(...);
allocate_color('black');
allocate_color('gray');
allocate_color('red');
allocate_color('blue');
allocate_color('green');
allocate_color('purple');
allocate_bgcolor('white');
transparent_bgcolor();
set_thick($thick = 1);
set_dashlen($dashlen = 7);
set_arrow_size(...);
draw_line(...);
draw_horizontal($y);
draw_vertical($x);
draw_dash_line(...);
draw_rect(...);
draw_arrow_head(...);
draw_xaxis(...);
draw_yaxis(...);
draw_xyaxis();
draw_circle(...);
draw_arc_deg(...);
draw_arc(...);
draw_dash_arc(...);
M_PI = 3.1415926535898
M_PI_2 = pi/2
M_PI_4 = pi/4
fill_rect(...);
fill_circle(...);
fill_arc_deg(...);
fill_triangle(...);
fill_quadrangle(...);
fill_polygon();
fill_toborder($x, $y, $border_color_x, $border_color_y);
allocate_text_color('black');
allocate_text_color('gray');
allocate_text_color('red');
allocate_text_color('blue');
allocate_text_color('green');
allocate_text_color('purple');
allocate_text_bgcolor('white');
transparent_text_bgcolor();
set_text_size($text_size);
set_text_margin($text_margin);
set_mark_size($mark_size);
draw_text(...);
O_POS_LOW_LEFT
O_POS_LOW_RIGHT
O_POS_UP_RIGHT
O_POS_UP_LEFT
O_POS_LOW_CENTER
O_POS_MIDDLE_RIGHT
O_POS_UP_CENTER
O_POS_MIDDLE_LEFT
O_POS_MIDDLE_CENTER
get_o_pos_by_ang($ang);
draw_formula(...);
ARC_TYPE_NONE
ARC_TYPE_SOLID
ARC_TYPE_DASH
BEG_TYPE_ARROW
END_TYPE_ARROW
draw_arc_mark(...);
draw_corner_mark(...);
draw_marked_triangle(...);
CMARK_NONE 0
CMARK_1_ARC 1
CMARK_2_ARC 2
CMARK_D_ARC 3
CMARK_1_PIE 4
CMARK_2_PIE 5
CMARK_D_PIE 6
CMARK_SQUARE
CMARK_CROSS
CMARK_CIRCLE
CMARK_DOT
draw_mark(...);
draw_mark_on_line(...);
draw_mark_on_circle(...);
MARK_1_LINE
MARK_2_LINE
MARK_3_LINE
MARK_SQUARE
MARK_CROSS
MARK_CIRCLE
MARK_DOT
set_x_def_range(...);
df1_ax_b($a, $b);
df1_x_y($x, $y);
df1_2p($x1, $y1, $x2, $y2);
df2_ax2_bx_c(...);
df2_ax_p2_q(...);
df2_a_x_al_x_be(...);
df_y_fx($y_fx);
df_xt_yt(...);
unit_vector(...);
calc_angle(...);
normalize_ang($ang);
calc_da(...);
calc_intersec_pt_of_lines(...);
calc_intersec_pt_of_lns(...);
rot90_vec(...);
rot_vec(...);
calc_perpendicular_bisector(...);
calc_distance(...);
calc_circumscribed_circle(...);
calc_didtance_to_line(...);
calc_foot_of_perpendicular_line(...);
calc_parallel_line(...);
calc_foot_of_perpendicular_circle(...);
calc_intersec_pts_of_line_circle(...);
calc_intersec_pts_of_circles(...);
calc_inscribed_circle(...);
calc_2p_arc(...);
calc_3dview(...);
clear_canvas();
set_alphablending($alpha = 50);
set_antialias($antialias = true);
transparent_gif_bgcolor();
xf($x)
x_rev($x)
yf($y)
y_rev($y)
作図プログラムをコンパイルして図形を仮表示する
仮表示
作図プログラムをサーバに保存するには、やる勉にログインしてください。
日付順
名前順
図形の新規作成
ログイン
図形の新規作成
ログイン
このページの先頭へ