Class Circle3D
- Namespace
- SearchAThing.Sci
- Assembly
- netcore-sci.dll
Specialized version of Arc3D with StartAngle=0 and EndAngle=2PI
public class Circle3D : Arc3D
- Inheritance
-
Circle3D
- Inherited Members
Constructors
Circle3D(Arc3D)
create circle from given arc
public Circle3D(Arc3D arc)
Parameters
arc
Arc3Darc used to build circle
Circle3D(CoordinateSystem3D, double)
create a circle in the given cs with given radius
public Circle3D(CoordinateSystem3D cs, double r)
Parameters
cs
CoordinateSystem3Dr
double
Circle3D(Vector3D, Vector3D, Vector3D)
Build 3d circle that intersect p1,p2,p3 ( the inside CS will centered in the circle center and Xaxis toward p1 )
public Circle3D(Vector3D p1, Vector3D p2, Vector3D p3)
Parameters
Properties
Area
Circle area
public double Area { get; }
Property Value
DxfEntity
build dxf circle
public override EntityObject DxfEntity { get; }
Property Value
- EntityObject
Length
Circle perimeter
public override double Length { get; }
Property Value
Methods
CircleRTanP(double, Vector3D, Line3D, double)
build 3d circle through point p, tangent to given t line, with given radius r
they can be two
public static IEnumerable<Circle3D> CircleRTanP(double tol, Vector3D p, Line3D t, double r)
Parameters
Returns
CirclesTan12P(double, Line3D, Line3D, Vector3D)
build 3d circle that tangent to lines t1,t2 and that intersects point p note: point p must contained in one of t1,t2 circle will be inside region t1.V toward t2.V they are 4 circles
public static IEnumerable<Circle3D> CirclesTan12P(double tol, Line3D t1, Line3D t2, Vector3D p)
Parameters
tol
doublelength tolerance
t1
Line3Dfirst tangent line
t2
Line3Dsecond tangent line
p
Vector3Dpoint on t1 xor t2 to state the circle radius
Returns
Contains(double, Vector3D, bool)
states if given point relies on this arc perimeter or shape depending on arguments
public override bool Contains(double tol, Vector3D pt, bool onlyPerimeter)
Parameters
tol
doublelength tolerance
pt
Vector3Dpoint to check
onlyPerimeter
boolif true it checks if point is on perimeter; if false it will check in area too
Returns
InscribedPolygon(double, int)
creates circle inscribed polygon and retrieve vertexes ( last == first )
public IEnumerable<Vector3D> InscribedPolygon(double tol, int segmentCount = 360)
Parameters
tol
doublelength tolerance
segmentCount
intcount of inscribed polygon segments ( must at least 3; default is 360 )
Returns
- IEnumerable<Vector3D>
coordinates of polygon vertices ( last == first )
Intersect(double, Circle3D)
intersect this circle with given other; pre-requisite: circles are not the same one ; actually implemented only for coplanar circles
public IEnumerable<Vector3D> Intersect(double tol, Circle3D other)
Parameters
Returns
Intersect(double, Line3D, bool, bool)
intersect this 3d circle with given 3d line
public override IEnumerable<Vector3D> Intersect(double tol, Line3D l, bool onlyPerimeter, bool lineSegmentMode)
Parameters
Returns
Move(Vector3D)
create a circle copy with origin moved
public override Geometry Move(Vector3D delta)
Parameters
delta
Vector3Dnew circle origin delta
Returns
QCadScript(bool)
qcad 2d script
public override string QCadScript(bool final = true)
Parameters
final
booladds QQ command