Polygon
From openEMS
Contents |
Description
A polygon is defined by its two dimensional shape in form of a polygon, its normal direction and elevation. It is created by
CSX = AddPolygon( CSX, propName, prio, normDir, elevation, points, varargin)
with the parameters
- CSX: The original CSX structure
- propName: name of the assigned property
- prio: priority of the primitive
- normDir: the normal direction of the polygon (0->x, 1->y, 2->z)
- points: two-dimensional coordinates p(i,j) of the base polygon
- elevation: elevation in normal direction
- varargin: a key/value list of primitives variable arguments
Note 1: The polygon has to be defined using Cartesian coordinates. For use with cylindrical mesh, set 'CoordSystem',0
Note 2: Each column j represents a vertex in the points matrix. The number of columns equals the number of points.
Note 3: Each row represents projection of the point on the axis in the order of right hand rule. For example: if object is normal to y axis (normDir = 1
), the first and second row contain z and x coordinates respectively. The number of rows is two.
Example
A star shaped polygon located in normal direction at z = 0:
p(1,1) = -100; p(2,1) = -100; p(1,2) = 0; p(2,2) = -50; p(1,3) = 100; p(2,3) = -100; p(1,4) = 50; p(2,4) = 0; p(1,5) = 100; p(2,5) = 100; p(1,6) = 0; p(2,6) = 50; p(1,7) = -100; p(2,7) = 100; p(1,8) = -50; p(2,8) = 0; >> p p = -100 0 100 50 100 0 -100 -50 -100 -50 -100 0 100 50 100 0 CSX = AddPolygon( CSX, 'metal', 1, 2, 0, p , 'CoordSystem',0)
Extruded Polygon
An extruded polygon is defined by its two dimensional base shape in form of a polygon, its normal direction, elevation and thickness. It is created by
CSX = AddLinPoly( CSX, propName, prio, normDir, elevation, points, Length, varargin)
with the parameters
- CSX: The original CSX structure
- propName: name of the assigned property
- prio: priority of the primitive
- normDir: the normal direction of the polygon (0->x, 1->y, 2->z)
- points: two-dimensional coordinates of the base polygon; see above
- length: linear extrusion in normal direction, starting at elevation
- varargin: see primitives variable arguments
Note: The polygon has to be defined using Cartesian coordinates. For use with cylindrical mesh, set 'CoordSystem',0
Example
A star shaped polygon extruded in z direction:
p(1,1) = -100; p(2,1) = -100; p(1,2) = 0; p(2,2) = -50; p(1,3) = 100; p(2,3) = -100; p(1,4) = 50; p(2,4) = 0; p(1,5) = 100; p(2,5) = 100; p(1,6) = 0; p(2,6) = 50; p(1,7) = -100; p(2,7) = 100; p(1,8) = -50; p(2,8) = 0; CSX = AddLinPoly( CSX, 'metal', 1, 2, 2, p , 100, 'CoordSystem',0)
Rotational Polygon
An rotational polygon is defined by its two dimensional base shape in form of a polygon, its normal direction, rotational axis and angle of rotation. It is created by
CSX = AddRotPoly( CSX, materialname, prio, normDir, points, RotAxisDir, angle, varargin)
with the parameters
- CSX: The original CSX structure
- materialname: Name of the assigned material property : created by AddMetal() or AddMaterial()
- prio: Priority of the primitive
- normDir: The normal direction of the polygon e.g. 'x', 'y' or 'z', or numeric (0->x, 1->y, 2->z)
- RotAxisDir: Rotational axis direction e.g. 'x', 'y' or 'z', or numeric (0->x, 1->y, 2->z) . Note: Should be different to normal direction.
- points: Two-dimensional coordinates of the base polygon; see above
- angle: Rotation angle, optional, default is [0 2*pi] e.g. [0 2*pi] for a full rotation.
- varargin: see primitives variable arguments
Note: The polygon has to be defined using Cartesian coordinates. For use with cylindrical mesh, set 'CoordSystem',0
Example
The same star shaped polygon, shifted in x-direction and rotated around the x-axis.
p(1,1) = -100; p(2,1) = -100; p(1,2) = 0; p(2,2) = -50; p(1,3) = 100; p(2,3) = -100; p(1,4) = 50; p(2,4) = 0; p(1,5) = 100; p(2,5) = 100; p(1,6) = 0; p(2,6) = 50; p(1,7) = -100; p(2,7) = 100; p(1,8) = -50; p(2,8) = 0; p(1,:)=p(1,:)+200; % shift in x-direction by 200 CSX = AddRotPoly( CSX, 'metal', 1, 2, p, 1, [0 pi], 'CoordSystem',0)
A conical solid can be created by rotating a triangular polygon:
p(1,1) = 0; p(2,1) = -100; p(1,2) = 100; p(2,2) = -100; p(1,3) = 0; p(2,3) = 100; CSX = AddRotPoly( CSX, 'metal', 1, 2,p, [1 0 0], [0,2*pi])