本文整理汇总了C#中SVGPoint.SetValue方法的典型用法代码示例。如果您正苦于以下问题:C# SVGPoint.SetValue方法的具体用法?C# SVGPoint.SetValue怎么用?C# SVGPoint.SetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SVGPoint
的用法示例。
在下文中一共展示了SVGPoint.SetValue方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: QuadraticCurveTo
//-----
public void QuadraticCurveTo(SVGPoint p1, SVGPoint p, float width)
{
SVGPoint _point = new SVGPoint(0f, 0f);
_point.SetValue(this._basicDraw.currentPoint);
SVGPoint _p1 = new SVGPoint(0f, 0f);
SVGPoint _p2 = new SVGPoint(0f, 0f);
SVGPoint _p3 = new SVGPoint(0f, 0f);
SVGPoint _p4 = new SVGPoint(0f, 0f);
this._graphics.GetThickLine(_point, p1, width, ref _p1, ref _p2, ref _p3, ref _p4);
SVGPoint _p5 = new SVGPoint(0f, 0f);
SVGPoint _p6 = new SVGPoint(0f, 0f);
SVGPoint _p7 = new SVGPoint(0f, 0f);
SVGPoint _p8 = new SVGPoint(0f, 0f);
this._graphics.GetThickLine(p1, p, width, ref _p5, ref _p6, ref _p7, ref _p8);
SVGPoint _cp1, _cp2;
_cp1 = this._graphics.GetCrossPoint(_p1, _p3, _p5, _p7);
_cp2 = this._graphics.GetCrossPoint(_p2, _p4, _p6, _p8);
SVGGraphicsPath _graphicsPath = new SVGGraphicsPath();
_graphicsPath.AddMoveTo(_p2);
_graphicsPath.AddQuadraticCurveTo(_cp2, _p8);
_graphicsPath.AddLineTo(_p7);
_graphicsPath.AddQuadraticCurveTo(_cp1, _p1);
_graphicsPath.AddLineTo(_p2);
this._graphics.FillPath(_graphicsPath);
MoveTo(p);
}
示例2: LineTo
//-----
public void LineTo(SVGPoint p, float width)
{
SVGPoint _point = new SVGPoint(0f, 0f);
_point.SetValue(this._basicDraw.currentPoint);
Line(_point, p, width);
MoveTo(p);
}
示例3: ArcTo
//-----
public void ArcTo(float r1, float r2, float angle, bool largeArcFlag, bool sweepFlag, SVGPoint p, float width)
{
float tx, ty, rx, ry;
rx = r1;
ry = r2;
SVGPoint p1 = new SVGPoint(0f, 0f);
SVGPoint p2 = new SVGPoint(0f, 0f);
p1.SetValue(this._basicDraw.currentPoint);
p2.SetValue(p);
double trx2, try2, tx2, ty2;
float temp1, temp2;
float _radian = (angle * Mathf.PI / 180.0f);
float _CosRadian = (float)Math.Cos(_radian);
float _SinRadian = (float)Math.Sin(_radian);
temp1 = (p1.x - p2.x) / 2.0f;
temp2 = (p1.y - p2.y) / 2.0f;
tx = (_CosRadian * temp1) + (_SinRadian * temp2);
ty = (-_SinRadian * temp1) + (_CosRadian * temp2);
trx2 = rx * rx;
try2 = ry * ry;
tx2 = tx * tx;
ty2 = ty * ty;
double radiiCheck = tx2 / trx2 + ty2 / try2;
if(radiiCheck > 1) {
rx = (float)Math.Sqrt((float)radiiCheck) * rx;
ry = (float)Math.Sqrt((float)radiiCheck) * ry;
trx2 = rx * rx;
try2 = ry * ry;
}
double tm1;
tm1 = (trx2 * try2 - trx2 * ty2 - try2 * tx2) / (trx2 * ty2 + try2 * tx2);
tm1 = (tm1 < 0) ? 0 : tm1;
float tm2;
tm2 = (largeArcFlag == sweepFlag) ? -(float)Math.Sqrt((float)tm1) : (float)Math.Sqrt((float)tm1);
float tcx, tcy;
tcx = tm2 * ((rx * ty) / ry);
tcy = tm2 * (-(ry * tx) / rx);
float cx, cy;
cx = _CosRadian * tcx - _SinRadian * tcy + ((p1.x + p2.x) / 2.0f);
cy = _SinRadian * tcx + _CosRadian * tcy + ((p1.y + p2.y) / 2.0f);
float ux = (tx - tcx) / rx;
float uy = (ty - tcy) / ry;
float vx = (-tx - tcx) / rx;
float vy = (-ty - tcy) / ry;
float _angle, _delta;
float tp, n;
n = (float)Math.Sqrt((ux * ux) + (uy * uy));
tp = ux;
_angle = (uy < 0) ? -(float)Math.Acos(tp / n) : (float)Math.Acos(tp / n);
_angle = _angle * 180.0f / Mathf.PI;
_angle %= 360f;
n = (float)Math.Sqrt((ux * ux + uy * uy) * (vx * vx + vy * vy));
tp = ux * vx + uy * vy;
_delta = (ux * vy - uy * vx < 0) ? -(float)Math.Acos(tp / n) : (float)Math.Acos(tp / n);
_delta = _delta * 180.0f / Mathf.PI;
if(!sweepFlag && _delta > 0) {
_delta -= 360f;
} else if(sweepFlag && _delta < 0)
_delta += 360f;
_delta %= 360f;
int number = 50;
float deltaT = _delta / number;
//---Get Control Point
SVGPoint _controlPoint1 = new SVGPoint(0f, 0f);
SVGPoint _controlPoint2 = new SVGPoint(0f, 0f);
for(int i = 0; i <= number; i++) {
float t_angle = (deltaT * i + _angle) * Mathf.PI / 180.0f;
_controlPoint1.x = _CosRadian * rx * (float)Math.Cos(t_angle) - _SinRadian * ry * (float)Math.Sin(t_angle) + cx;
_controlPoint1.y = _SinRadian * rx * (float)Math.Cos(t_angle) + _CosRadian * ry * (float)Math.Sin(t_angle) + cy;
if((_controlPoint1.x != p1.x) && (_controlPoint1.y != p1.y)) {
i = number + 1;
}
}
for(int i = number; i >= 0; i--) {
float t_angle = (deltaT * i + _angle) * Mathf.PI / 180.0f;
_controlPoint2.x = _CosRadian * rx * (float)Math.Cos(t_angle) - _SinRadian * ry * (float)Math.Sin(t_angle) + cx;
_controlPoint2.y = _SinRadian * rx * (float)Math.Cos(t_angle) + _CosRadian * ry * (float)Math.Sin(t_angle) + cy;
if((_controlPoint2.x != p2.x) && (_controlPoint2.y != p2.y)) {
i = -1;
}
}
//-----
SVGPoint _p1 = new SVGPoint(0f, 0f);
SVGPoint _p2 = new SVGPoint(0f, 0f);
//.........这里部分代码省略.........
示例4: CubicCurveTo
//-----
public void CubicCurveTo(SVGPoint p1, SVGPoint p2, SVGPoint p, float width)
{
SVGPoint _point = new SVGPoint(0f, 0f);
_point.SetValue(this._basicDraw.currentPoint);
SVGPoint _p1 = new SVGPoint(0f, 0f);
SVGPoint _p2 = new SVGPoint(0f, 0f);
SVGPoint _p3 = new SVGPoint(0f, 0f);
SVGPoint _p4 = new SVGPoint(0f, 0f);
bool temp;
temp = this._graphics.GetThickLine(_point, p1, width, ref _p1, ref _p2, ref _p3, ref _p4);
if(temp == false) {
QuadraticCurveTo(p2, p, width);
return;
}
SVGPoint _p5 = new SVGPoint(0f, 0f);
SVGPoint _p6 = new SVGPoint(0f, 0f);
SVGPoint _p7 = new SVGPoint(0f, 0f);
SVGPoint _p8 = new SVGPoint(0f, 0f);
this._graphics.GetThickLine(p1, p2, width, ref _p5, ref _p6, ref _p7, ref _p8);
SVGPoint _p9 = new SVGPoint(0f, 0f);
SVGPoint _p10 = new SVGPoint(0f, 0f);
SVGPoint _p11 = new SVGPoint(0f, 0f);
SVGPoint _p12 = new SVGPoint(0f, 0f);
this._graphics.GetThickLine(p2, p, width, ref _p9, ref _p10, ref _p11, ref _p12);
SVGPoint _cp1, _cp2, _cp3, _cp4;
_cp1 = this._graphics.GetCrossPoint(_p1, _p3, _p5, _p7);
_cp2 = this._graphics.GetCrossPoint(_p2, _p4, _p6, _p8);
_cp3 = this._graphics.GetCrossPoint(_p5, _p7, _p9, _p11);
_cp4 = this._graphics.GetCrossPoint(_p6, _p8, _p10, _p12);
this._basicDraw.MoveTo(_point);
this._basicDraw.CubicCurveTo(p1, p2, p);
SVGGraphicsPath _graphicsPath = new SVGGraphicsPath();
_graphicsPath.AddMoveTo(_p2);
_graphicsPath.AddCubicCurveTo(_cp2, _cp4, _p12);
_graphicsPath.AddLineTo(_p11);
_graphicsPath.AddCubicCurveTo(_cp3, _cp1, _p1);
_graphicsPath.AddLineTo(_p2);
this._graphics.FillPath(_graphicsPath);
MoveTo(p);
}