DisplayPipeline.Draw2dText Method (String, Color, Point2d, Boolean)

DisplayPipelineDraw2dText Method (String, Color, Point2d, Boolean)

Draws 2D text on the viewport.

Namespace:  Rhino.Display
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
public void Draw2dText(
	string text,
	Color color,
	Point2d screenCoordinate,
	bool middleJustified
)
Public Sub Draw2dText ( 
	text As String,
	color As Color,
	screenCoordinate As Point2d,
	middleJustified As Boolean
)

Parameters

text
Type: SystemString
the string to draw.
color
Type: System.DrawingColor
text color.
screenCoordinate
Type: Rhino.GeometryPoint2d
definition point in screen coordinates (0,0 is top-left corner)
middleJustified
Type: SystemBoolean
if true text is centered around the definition point, otherwise it is lower-left justified.
Examples
using Rhino;
using Rhino.DocObjects;
using Rhino.Geometry;
using Rhino.Commands;
using Rhino.Input.Custom;

namespace examples_cs
{
  public class DrawStringCommand : Command
  {
    public override string EnglishName { get { return "csDrawString"; } }

    protected override Result RunCommand(RhinoDoc doc, RunMode mode)
    {
      var gp = new GetDrawStringPoint();
      gp.SetCommandPrompt("Point");
      gp.Get();
      return gp.CommandResult();
    }
  }

  public class GetDrawStringPoint : GetPoint
  {
    protected override void OnDynamicDraw(GetPointDrawEventArgs e)
    {
      base.OnDynamicDraw(e);
      var xform = e.Viewport.GetTransform(CoordinateSystem.World, CoordinateSystem.Screen);
      var current_point = e.CurrentPoint;
      current_point.Transform(xform);
      var screen_point = new Point2d(current_point.X, current_point.Y);
      var msg = string.Format("screen {0:F}, {1:F}", current_point.X, current_point.Y);
      e.Display.Draw2dText(msg, System.Drawing.Color.Blue, screen_point, false);
    }
  }
}
Imports Rhino
Imports Rhino.DocObjects
Imports Rhino.Geometry
Imports Rhino.Commands
Imports Rhino.Input.Custom

Namespace examples_vb
  Public Class DrawStringCommand
    Inherits Command
    Public Overrides ReadOnly Property EnglishName() As String
      Get
        Return "vbDrawString"
      End Get
    End Property

    Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result
      Dim gp = New GetDrawStringPoint()
      gp.SetCommandPrompt("Point")
      gp.[Get]()
      Return gp.CommandResult()
    End Function
  End Class

  Public Class GetDrawStringPoint
    Inherits GetPoint
    Protected Overrides Sub OnDynamicDraw(e As GetPointDrawEventArgs)
      MyBase.OnDynamicDraw(e)
      Dim xform = e.Viewport.GetTransform(CoordinateSystem.World, CoordinateSystem.Screen)
      Dim current_point = e.CurrentPoint
      current_point.Transform(xform)
      Dim screen_point = New Point2d(current_point.X, current_point.Y)
      Dim msg = String.Format("screen {0:F}, {1:F}", current_point.X, current_point.Y)
      e.Display.Draw2dText(msg, System.Drawing.Color.Blue, screen_point, False)
    End Sub
  End Class
End Namespace
from Rhino import *
from Rhino.DocObjects import *
from Rhino.Geometry import *
from Rhino.Commands import *
from Rhino.Input.Custom import *
from System.Drawing import Color

def RunCommand():
  gp = GetDrawStringPoint()
  gp.SetCommandPrompt("Point")
  gp.Get()
  return gp.CommandResult()

class GetDrawStringPoint(GetPoint):
  def OnDynamicDraw(self, e):
    xform = e.Viewport.GetTransform(
      CoordinateSystem.World, CoordinateSystem.Screen)    

    current_point = e.CurrentPoint
    current_point.Transform(xform)
    screen_point = Point2d(current_point.X, current_point.Y)

    msg = "screen {0}, {1}".format(screen_point.X, screen_point.Y)
    e.Display.Draw2dText(msg, Color.Blue, screen_point, False)

if __name__ == "__main__":
  RunCommand()
Version Information

Rhino for Mac

Supported in: 5.4

Rhino for Windows

Supported in: 6.8
See Also