KiCad PCB EDA Suite
Loading...
Searching...
No Matches
ellipse.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5
*
6
* This program is free software: you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License as published by the
8
* Free Software Foundation, either version 3 of the License, or (at your
9
* option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License along
17
* with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#include <
geometry/ellipse.h
>
21
22
23
template
<
typename
NumericType>
24
ELLIPSE<NumericType>::ELLIPSE
(
const
VECTOR2<NumericType>
& aCenter, NumericType aMajorRadius,
25
NumericType aMinorRadius,
EDA_ANGLE
aRotation,
EDA_ANGLE
aStartAngle,
26
EDA_ANGLE
aEndAngle ) :
27
Center
( aCenter ),
28
MajorRadius
( aMajorRadius ),
29
MinorRadius
( aMinorRadius ),
30
Rotation
( aRotation ),
31
StartAngle
( aStartAngle ),
32
EndAngle
( aEndAngle )
33
{
34
}
35
36
37
template
<
typename
NumericType>
38
ELLIPSE<NumericType>::ELLIPSE
(
const
VECTOR2<NumericType>
& aCenter,
39
const
VECTOR2<NumericType>
& aMajor,
double
aRatio,
40
EDA_ANGLE
aStartAngle,
EDA_ANGLE
aEndAngle ) :
41
Center
( aCenter ),
42
StartAngle
( aStartAngle ),
43
EndAngle
( aEndAngle )
44
{
45
MajorRadius
= aMajor.
EuclideanNorm
();
46
MinorRadius
= NumericType(
MajorRadius
* aRatio );
47
Rotation
=
EDA_ANGLE
( std::atan2( aMajor.
y
, aMajor.
x
),
RADIANS_T
);
48
}
49
50
template
class
ELLIPSE<double>
;
51
template
class
ELLIPSE<int>
;
EDA_ANGLE
Definition
eda_angle.h:37
ELLIPSE::MinorRadius
NumericType MinorRadius
Definition
ellipse.h:69
ELLIPSE::Rotation
EDA_ANGLE Rotation
Definition
ellipse.h:70
ELLIPSE::StartAngle
EDA_ANGLE StartAngle
Definition
ellipse.h:71
ELLIPSE::MajorRadius
NumericType MajorRadius
Definition
ellipse.h:68
ELLIPSE::ELLIPSE
ELLIPSE()=default
ELLIPSE::EndAngle
EDA_ANGLE EndAngle
Definition
ellipse.h:72
ELLIPSE::Center
VECTOR2< NumericType > Center
Definition
ellipse.h:67
VECTOR2
Define a general 2D-vector/point.
Definition
vector2d.h:71
VECTOR2::x
T x
Definition
vector2d.h:79
VECTOR2::y
T y
Definition
vector2d.h:79
VECTOR2::EuclideanNorm
T EuclideanNorm() const
Compute the Euclidean norm of the vector, which is defined as sqrt(x ** 2 + y ** 2).
Definition
vector2d.h:283
RADIANS_T
@ RADIANS_T
Definition
eda_angle.h:32
ellipse.h
src
libs
kimath
src
geometry
ellipse.cpp
Generated on Mon Oct 13 2025 00:06:21 for KiCad PCB EDA Suite by
1.13.2