Last change
on this file since 13599 was
12762,
checked in by aballeit, 9 years ago
|
#2283 GUI updates, Tree-chart, MCTS Version 2 (prune leaves)
|
File size:
1.2 KB
|
Line | |
---|
1 | using System;
|
---|
2 |
|
---|
3 | using SharpVectors.Polynomials;
|
---|
4 |
|
---|
5 | namespace SharpVectors.Dom.Svg
|
---|
6 | {
|
---|
7 | public abstract class SvgPathSegCurvetoQuadratic : SvgPathSegCurveto
|
---|
8 | {
|
---|
9 | protected SvgPathSegCurvetoQuadratic(SvgPathSegType type) : base(type)
|
---|
10 | {
|
---|
11 | }
|
---|
12 |
|
---|
13 | public abstract override SvgPointF AbsXY{get;}
|
---|
14 | public abstract override SvgPointF CubicX1Y1{get;}
|
---|
15 | public abstract override SvgPointF CubicX2Y2{get;}
|
---|
16 |
|
---|
17 | public abstract SvgPointF QuadraticX1Y1{get;}
|
---|
18 |
|
---|
19 | protected override SqrtPolynomial getArcLengthPolynomial()
|
---|
20 | {
|
---|
21 | double c2x, c2y, c1x, c1y;
|
---|
22 | SvgPointF p1 = PreviousSeg.AbsXY;
|
---|
23 | SvgPointF p2 = QuadraticX1Y1;
|
---|
24 | SvgPointF p3 = AbsXY;
|
---|
25 |
|
---|
26 | c2x = p1.X - 2.0 * p2.X + p3.X;
|
---|
27 | c2y = p1.Y - 2.0 * p2.Y + p3.Y;
|
---|
28 |
|
---|
29 | c1x = -2.0*p1.X + 2.0*p2.X;
|
---|
30 | c1y = -2.0*p1.Y + 2.0*p2.Y;
|
---|
31 |
|
---|
32 | // build polynomial
|
---|
33 | // dx = dx/dt
|
---|
34 | // dy = dy/dt
|
---|
35 | // sqrt poly = sqrt( (dx*dx) + (dy*dy) )
|
---|
36 | return new SqrtPolynomial(
|
---|
37 | c1x*c1x + c1y*c1y, 4.0*(c1x*c2x + c1y*c2y), 4.0*(c2x*c2x + c2y*c2y));
|
---|
38 | }
|
---|
39 | }
|
---|
40 | }
|
---|
Note: See
TracBrowser
for help on using the repository browser.