RhinoCommon API
DisplayPipelineDrawCircle Method (Circle, Color) |
Draw a single circle object.
Namespace: Rhino.Display
Assembly: RhinoCommon (in RhinoCommon.dll)
Since: 5.0

public void DrawCircle( Circle circle, Color color )
Public Sub DrawCircle ( circle As Circle, color As Color )
Parameters
- circle
- Type: Rhino.GeometryCircle
Circle to draw. - color
- Type: System.DrawingColor
Color to draw with.

using Rhino; using Rhino.Geometry; using Rhino.Commands; using Rhino.Input.Custom; namespace examples_cs { public class GetPointDynamicDrawCommand : Command { public override string EnglishName { get { return "csGetPointDynamicDraw"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var gp = new GetPoint(); gp.SetCommandPrompt("Center point"); gp.Get(); if (gp.CommandResult() != Result.Success) return gp.CommandResult(); var center_point = gp.Point(); if (center_point == Point3d.Unset) return Result.Failure; var gcp = new GetCircleRadiusPoint(center_point); gcp.SetCommandPrompt("Radius"); gcp.ConstrainToConstructionPlane(false); gcp.SetBasePoint(center_point, true); gcp.DrawLineFromPoint(center_point, true); gcp.Get(); if (gcp.CommandResult() != Result.Success) return gcp.CommandResult(); var radius = center_point.DistanceTo(gcp.Point()); var cplane = doc.Views.ActiveView.ActiveViewport.ConstructionPlane(); doc.Objects.AddCircle(new Circle(cplane, center_point, radius)); doc.Views.Redraw(); return Result.Success; } } public class GetCircleRadiusPoint : GetPoint { private Point3d m_center_point; public GetCircleRadiusPoint(Point3d centerPoint) { m_center_point = centerPoint; } protected override void OnDynamicDraw(GetPointDrawEventArgs e) { base.OnDynamicDraw(e); var cplane = e.RhinoDoc.Views.ActiveView.ActiveViewport.ConstructionPlane(); var radius = m_center_point.DistanceTo(e.CurrentPoint); var circle = new Circle(cplane, m_center_point, radius); e.Display.DrawCircle(circle, System.Drawing.Color.Black); } } }
Imports Rhino Imports Rhino.Geometry Imports Rhino.Commands Imports Rhino.Input.Custom Namespace examples_vb Public Class GetPointDynamicDrawCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbGetPointDynamicDraw" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim gp = New GetPoint() gp.SetCommandPrompt("Center point") gp.[Get]() If gp.CommandResult() <> Result.Success Then Return gp.CommandResult() End If Dim center_point = gp.Point() If center_point = Point3d.Unset Then Return Result.Failure End If Dim gcp = New GetCircleRadiusPoint(center_point) gcp.SetCommandPrompt("Radius") gcp.ConstrainToConstructionPlane(False) gcp.SetBasePoint(center_point, True) gcp.DrawLineFromPoint(center_point, True) gcp.[Get]() If gcp.CommandResult() <> Result.Success Then Return gcp.CommandResult() End If Dim radius = center_point.DistanceTo(gcp.Point()) Dim cplane = doc.Views.ActiveView.ActiveViewport.ConstructionPlane() doc.Objects.AddCircle(New Circle(cplane, center_point, radius)) doc.Views.Redraw() Return Result.Success End Function End Class Public Class GetCircleRadiusPoint Inherits GetPoint Private m_center_point As Point3d Public Sub New(centerPoint As Point3d) m_center_point = centerPoint End Sub Protected Overrides Sub OnDynamicDraw(e As GetPointDrawEventArgs) MyBase.OnDynamicDraw(e) Dim cplane = e.RhinoDoc.Views.ActiveView.ActiveViewport.ConstructionPlane() Dim radius = m_center_point.DistanceTo(e.CurrentPoint) Dim circle = New Circle(cplane, m_center_point, radius) e.Display.DrawCircle(circle, System.Drawing.Color.Black) End Sub End Class End Namespace
Python
from Rhino import * from Rhino.Geometry import * from Rhino.Commands import * from Rhino.Input.Custom import * from scriptcontext import doc from System.Drawing import * def RunCommand(): gp = GetPoint() gp.SetCommandPrompt("Center point") gp.Get() if gp.CommandResult() <> Result.Success: return gp.CommandResult() center_point = gp.Point() if center_point == Point3d.Unset: return Result.Failure gcp = GetCircleRadiusPoint(center_point) gcp.SetCommandPrompt("Radius") gcp.ConstrainToConstructionPlane(False) gcp.SetBasePoint(center_point, True) gcp.DrawLineFromPoint(center_point, True) gcp.Get() if gcp.CommandResult() <> Result.Success: return gcp.CommandResult() radius = center_point.DistanceTo(gcp.Point()) cplane = doc.Views.ActiveView.ActiveViewport.ConstructionPlane() doc.Objects.AddCircle(Circle(cplane, center_point, radius)) doc.Views.Redraw() return Result.Success class GetCircleRadiusPoint (GetPoint): def __init__(self, centerPoint): self.m_center_point = centerPoint def OnDynamicDraw(self, e): cplane = e.RhinoDoc.Views.ActiveView.ActiveViewport.ConstructionPlane() radius = self.m_center_point.DistanceTo(e.CurrentPoint) circle = Circle(cplane, self.m_center_point, radius) e.Display.DrawCircle(circle, Color.Black) if __name__ == "__main__": RunCommand()
