Table of Contents

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 Arc3D

arc 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 CoordinateSystem3D
r 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

p1 Vector3D
p2 Vector3D
p3 Vector3D

Properties

Area

Circle area

public double Area { get; }

Property Value

double

DxfEntity

build dxf circle

public override EntityObject DxfEntity { get; }

Property Value

EntityObject

Length

Circle perimeter

public override double Length { get; }

Property Value

double

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

tol double

length tolerance

p Vector3D

passing point

t Line3D

tangent line

r double

circle radius

Returns

IEnumerable<Circle3D>

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 double

length tolerance

t1 Line3D

first tangent line

t2 Line3D

second tangent line

p Vector3D

point on t1 xor t2 to state the circle radius

Returns

IEnumerable<Circle3D>

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 double

length tolerance

pt Vector3D

point to check

onlyPerimeter bool

if true it checks if point is on perimeter; if false it will check in area too

Returns

bool

InscribedPolygon(double, int)

creates circle inscribed polygon and retrieve vertexes ( last == first )

public IEnumerable<Vector3D> InscribedPolygon(double tol, int segmentCount = 360)

Parameters

tol double

length tolerance

segmentCount int

count 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

tol double

len tolerance

other Circle3D

other circle

Returns

IEnumerable<Vector3D>

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

tol double
l Line3D
onlyPerimeter bool
lineSegmentMode bool

Returns

IEnumerable<Vector3D>

Move(Vector3D)

create a circle copy with origin moved

public override Geometry Move(Vector3D delta)

Parameters

delta Vector3D

new circle origin delta

Returns

Geometry

QCadScript(bool)

qcad 2d script

public override string QCadScript(bool final = true)

Parameters

final bool

adds QQ command

Returns

string