RhinoCommon API
Point2dDistanceTo Method |
Computes the distance between two points.
Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll)
Since: 5.0

public double DistanceTo( Point2d other )
Public Function DistanceTo ( other As Point2d ) As Double
Parameters
- other
- Type: Rhino.GeometryPoint2d
Another point.
Return Value
Type: DoubleThe length of the line between the two points, or 0 if either point is invalid.

using Rhino; using Rhino.Geometry; using Rhino.Commands; using System.Collections.Generic; using System.Linq; namespace examples_cs { public class LeaderCommand : Command { public override string EnglishName { get { return "csLeader"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var points = new Point3d[] { new Point3d(1, 1, 0), new Point3d(5, 1, 0), new Point3d(5, 5, 0), new Point3d(9, 5, 0) }; var xy_plane = Plane.WorldXY; var points2d = new List<Point2d>(); foreach (var point3d in points) { double x, y; if (xy_plane.ClosestParameter(point3d, out x, out y)) { var point2d = new Point2d(x, y); if (points2d.Count < 1 || point2d.DistanceTo(points2d.Last<Point2d>()) > RhinoMath.SqrtEpsilon) points2d.Add(point2d); } } doc.Objects.AddLeader(xy_plane, points2d); doc.Views.Redraw(); return Result.Success; } } }
Imports Rhino Imports Rhino.Geometry Imports Rhino.Commands Imports System.Collections.Generic Imports System.Linq Namespace examples_vb Public Class LeaderCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbLeader" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim points = New List(Of Point3d)() From { _ New Point3d(1, 1, 0), _ New Point3d(5, 1, 0), _ New Point3d(5, 5, 0), _ New Point3d(9, 5, 0) _ } Dim xyPlane = Plane.WorldXY Dim points2d = New List(Of Point2d)() For Each point3d As Point3d In points Dim x As Double, y As Double If xyPlane.ClosestParameter(point3d, x, y) Then Dim point2d = New Point2d(x, y) If points2d.Count < 1 OrElse point2d.DistanceTo(points2d.Last()) > RhinoMath.SqrtEpsilon Then points2d.Add(point2d) End If End If Next doc.Objects.AddLeader(xyPlane, points2d) doc.Views.Redraw() Return Result.Success End Function End Class End Namespace
Python
import rhinoscriptsyntax as rs def RunCommand(): points = [(1,1,0), (5,1,0), (5,5,0), (9,5,0)] rs.AddLeader(points) if __name__ == "__main__": RunCommand()
