 + (x2 - x1) * 4.3 / d);
	context.lineTo(x2, y2);
	context.moveTo(x2 + (y2 - y1) * 4.3 / d - (x2 - x1) * 16.7 / d, y2 - (y2 - y1) * 16.7 / d - (x2 - x1) * 4.3 / d);
	context.lineTo(x2, y2);
	context.strokeStyle = color;
	context.stroke();
	context.closePath();
}

// for illustrations
function draw_tan() {
	// client
	const w = 640.0;
	const h = 480.0;

	// visible region
	const x_min = -4.5;
	const y_min = -3.0;
	const x_max = 4.5;
	const y_max = 3.0;
	const client_x_center = w*(0-x_min)/(x_max-x_min);
	con