<script type="text/javascript" src="http://www.walterzorn.com/scripts/wz_jsgraphics.js"></script>
<script type="text/javascript">
function getPrice(distance, night) {
if ( distance == 0 ) return 0;
if ( distance <= basicDistance ) return basicPrice;
if ( distance <= extDistance ) {
price = basicPrice + unitPrice * (distance - basicDistance);
price += basicPrice + unitPrice*(extDistance-basicDistance) + extPrice*(distance-extDistance)
function getPriceWithReset(distance, night, reset) {
return getPrice(distance, night);
return getPrice(reset, night) * Math.floor(distance/reset) + getPrice(distance % reset, night);
var coordXUnit = 8, coordYUnit = 3,
basicX = 100, basicY = 50,
coordMaxX = 101, coordMaxY = 251;
function drawString(str, x, y) {
jg.drawString(str, basicX+x*coordXUnit, basicY+(coordMaxY-y)*coordYUnit);
function drawPoint(x, y) {
function drawLine(x1, y1, x2, y2) {
jg.drawLine(basicX + x1*coordXUnit, basicY + (coordMaxY-y1)*coordYUnit, basicX + x2*coordXUnit, basicY + (coordMaxY-y2)*coordYUnit);
function drawPolyline(ax, ay) {
var axx = new Array(), ayy = new Array();
axx.push(basicX + (ax[e] * coordXUnit) );
ayy.push(basicY + (coordMaxY - ay[e])*coordYUnit);
jg.drawPolyline(axx, ayy);
function drawCoordinate() {
drawLine(0, 0, coordMaxX, 0);
drawLine(0, 0, 0, coordMaxY);
for (var i = 1; i < coordMaxX; i++) {
jg.setStroke(Stroke.DOTTED);
drawLine(i, 0, i, coordMaxY);
for (var i = 1; i < coordMaxY ; i++) {
jg.setStroke(Stroke.DOTTED);
drawLine(0, i, coordMaxX, i);
function drawPriceLine(night, reset) {
var ax = new Array(), ay = new Array();
for (var d=0; d<70; d++) {
ay.push(getPriceWithReset(d, 0, reset));
/////////////// main section ///////////////
var jg = new jsGraphics();
jg.setFont("verdana,geneva,sans-serif", "10px", Font.PLAIN);
drawString("reset:", 0, -10);
drawString("10", 10, -10);
drawString("15", 15, -10);
drawString("20", 20, -10);
///////////////// from wangjing to my home, 35KM /////////////////
var xp = new Array(), yp = new Array();
for ( var i=10; i<30; i++) {
yp.push(getPriceWithReset(35, 0, i));
drawString(getPriceWithReset(35, 0, 15), 0, -20);