示例#1
0
        protected override void RenderSelf(GXPEngine.Core.GLContext glContext)
        {
            // NB: After you insert your own extended Vec2 struct here,
            // it's a lot easier and clearer to implement the next lines using
            // methods such as Add, Scale, Length, Normalize, Rotate, etc.!

            Vec2 endPoint = new Vec2(
                startPoint.x + vector.x * drawScale,
                startPoint.y + vector.y * drawScale
                );

            LineSegment.RenderLine(startPoint, endPoint, color, lineWidth, true);

            float length   = Mathf.Sqrt(vector.x * vector.x + vector.y * vector.y);      // length of vector
            Vec2  smallVec = new Vec2(-10 * vector.x / length, -10 * vector.y / length); // constant length 10, opposite direction of vector
            Vec2  left     = new Vec2(-smallVec.y, smallVec.x);                          // rotate 90 degrees
            Vec2  right    = new Vec2(smallVec.y, -smallVec.x);                          // rotate -90 degrees

            left.Add(smallVec);
            left.Add(endPoint);
            right.Add(smallVec);
            right.Add(endPoint);

            LineSegment.RenderLine(endPoint, left, color, lineWidth, true);
            LineSegment.RenderLine(endPoint, right, color, lineWidth, true);
        }
示例#2
0
        protected override void RenderSelf(GXPEngine.Core.GLContext glContext)
        {
            Vec2 endPoint = startPoint + vector * scaleFactor;

            Gizmos.RenderLine(startPoint.x, startPoint.y, endPoint.x, endPoint.y, color, lineWidth, true);

            Vec2 smallVec = vector.Normalized() * -10;             // constant length 10, opposite direction of vector
            Vec2 left     = new Vec2(-smallVec.y, smallVec.x) + smallVec + endPoint;
            Vec2 right    = new Vec2(smallVec.y, -smallVec.x) + smallVec + endPoint;

            Gizmos.RenderLine(endPoint.x, endPoint.y, left.x, left.y, color, lineWidth, true);
            Gizmos.RenderLine(endPoint.x, endPoint.y, right.x, right.y, color, lineWidth, true);
        }
示例#3
0
        protected override void RenderSelf(GXPEngine.Core.GLContext glContext)
        {
            if (_invalidate)
            {
                graphics.Clear(backgroundColor);
                if (_borderSize > 0 && _borderColor != Color.Empty)
                {
                    graphics.DrawRectangle(_borderPen, 0, 0, width, height);
                }
                graphics.DrawString(_text, _font, _textBrush, 0, 0);
            }

            base.RenderSelf(glContext);
        }
示例#4
0
        protected override void RenderSelf(GXPEngine.Core.GLContext glContext)
        {
            if (_startPoint == null || _vector == null)
            {
                return;
            }

            Vec2 endPoint = _startPoint.Clone().Add(_vector.Clone().Scale(scale));

            LineSegment.RenderLine(_startPoint, endPoint, color, lineWidth, true);

            Vec2 smallVec = endPoint.Clone().Sub(_startPoint).Normalize().Scale(-10);
            Vec2 left     = new Vec2(-smallVec.y, smallVec.x);
            Vec2 right    = new Vec2(smallVec.y, -smallVec.x);

            left.Add(smallVec).Add(endPoint);
            right.Add(smallVec).Add(endPoint);

            LineSegment.RenderLine(endPoint, left, color, lineWidth, true);
            LineSegment.RenderLine(endPoint, right, color, lineWidth, true);
        }