默认分段类型函数定义

'

'------------- Cubic -------------------

'

SegmentType("Cubic", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = 3*xbar^2 - 2*xbar^3;

    y = y1+(y2-y1)*ybar;

    return y;

endSegmentType

'

'------------- Quarter Sine ------------

'

SegmentType("Quarter-Sine", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = sin(PI*xbar/2);

    y = y1+(y2-y1)*ybar;

    return y;

endSegmentType

'

'------------- Quarter Cosine ------------

'

SegmentType("Quarter-Cosine", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = 1-cos(PI*xbar/2);

    y = y1+(y2-y1)*ybar;

    return y;

endSegmentType

'

'------------- Half Cosine ----------------

'

SegmentType("Half-Cosine", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = cos(PI*xbar);

    y = (y2+y1)/2-((y2-y1)/2)*ybar;

    return y;

endSegmentType

'

'------------- 3-4-5 Polynomial ----------------

'

SegmentType("3-4-5-Polynomial", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = 10*xbar^3 - 15*xbar^4 + 6*xbar^5;

    y = y1+(y2-y1)*ybar;

    return y;

endSegmentType

'

'------------- 4-5-6-7 Polynomial -------------

'

SegmentType("4-5-6-7-Polynomial", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = 35*xbar^4 - 84*xbar^5 + 70*xbar^6 - 20*xbar^7;

    y = y1+(y2-y1)*ybar;

    return y;

endSegmentType

'

'------------- 5-6-7-8-9 Polynomial -------------

'

SegmentType("5-6-7-8-9-Polynomial", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = 126*xbar^5 - 420*xbar^6 + 540*xbar^7 - 315*xbar^8 + 70*xbar^9;

    y = y1+(y2-y1)*ybar;

    return y;

endSegmentType

'

'------------- Cycloidal ----------------

'

SegmentType("Cycloidal", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = 1-cos(PI*xbar/2);

    y = y1+(y2-y1)*ybar;

    return y;

endSegmentType

'

'------------- Quadratic -------------------

'

SegmentType("Quadratic", x, x1, y1, x2, y2)

    xbar = (x-x1)/(x2-x1);

    ybar = xbar2;

    y = y1+(y2-y1)*ybar;

    return y;

endSegmentType

'

'------------- Linear -------------------

'

SegmentType("Linear", x, x1, y1, x2, y2)

    slope = (y2-y1)/(x2-x1);

    dy = slope*(x-x1);

    val = y1 + dy;

    return val;

endSegmentType

,