===================================================== Liste_Funktionen_Beginn: UT3D_ck_el360 check if elli is 360-degree-elli UT3D_par_par1ell par 0-1 --> parametric-Angle UT3D_par1_parell parametric-Angle --> par 0-1 UT2D_pt_elangd pt <- parametric-Angle, rMaj, rMin. UT3D_pt_evparEll pt <- parametric-Angle UT3D_pt_elangd pt <- parametric-Angle. UT3D_angr_elpt parametric-Angle <- pt UT3D_pt_ck_onel check if point lies on an (full) ellipse UT3D_pt_elfoc focal points of ellipse UT3D_pt_projptel proj PT -> CRV-Ellipse UT3D_pt_intlnel__ intersect line and ellipse UT3D_pt_intlnel_p intersection LN-ELL (gives 0/1/2 points) UT3D_pt_intplell intersect plane ellipse UT3D_vc_tangel Tangente duch Pu UT3D_el_pt2vc2a elli=center,vecMajAx,vecMinAx,AngStart,angEnd,dir. UT3D_el_ci change circ > ellipse UT3D_el_projelpl ellipse = project ELL -> PLN UT3D_el_projcipl ellipse = project CIR -> PLN UT3D_el_elcoe Ellipse <-- coeff-data (IGES) UT3D_el_elpt180 change elli -> 180 deg-elli; keep dir UT3D_el_el2pt change start- and endpoint of elli UT3D_elcoe_el CoeffEllipse(IGES) <-- ellipse UT3D_el_inv1 turn direction and p1/p2 (same display !) UT3D_el_inv2 turn direction (do not swap p1,p2) UT3D_cv_ell Polygon <- Ellipse Liste_Funktionen_Ende: =====================================================
#include "../xa/MS_Def0.h"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "../ut/ut_geo.h"
#include "../ut/ut_math.h"
#include "../ut/ut_umem.h"
#include "../gr/ut_UI.h"
#include "../ut/ut_elli.h"
Functions | |
int | UT3D_el_ci (CurvElli *eo, Circ *ci) |
int | UT3D_el_inv1 (CurvElli *el1) |
int | UT3D_el_inv2 (CurvElli *el1) |
double | UT3D_par_par1ell (double lpar, CurvElli *el1) |
double | UT3D_par1_parell (double *lpar, CurvElli *el1) |
int | UT3D_ck_el360 (CurvElli *el1) |
int | UT3D_el_elpt180 (CurvElli *el1, Point *p1) |
int | UT3D_el_el2pt (CurvElli *el1, Point *p1, Point *p2) |
double | UT3D_angr_elpt (Point *pti, Point *ptc, Vector *va, Vector *vb) |
int | UT3D_pt_evparEll (Point *pto, CurvElli *el1, double lpar) |
int | UT3D_pt_elangd (Point *pto, Point *ptc, Vector *va, Vector *vb, double angr) |
int | UT2D_pt_elangd (Point2 *pto, double lx, double ly, double angr) |
int | UT3D_el_pt2vc2a (CurvElli *el, Point *ptc, Vector *vcx, Vector *vcy, double a1, double a2, int idir) |
int | UT3D_pt_ck_onel (Point *pt, CurvElli *el) |
int | UT3D_pt_elfoc (Point *fp1, Point *fp2, CurvElli *el) |
int | UT3D_vc_tangel (Vector *vc1, Point *pt1, CurvElli *el1) |
int | UT3D_cv_ell (Point cv[], int *numpt, CurvElli *el, int ptmax, double stol) |
int | UT3D_el_projelpl (CurvElli *elo, Plane *pl, CurvElli *eli) |
int | UT3D_el_projcipl (CurvElli *el, Plane *pl, Circ *ci) |
int | UT3D_pt_projptel (int *numpe, Point *pe, CurvElli *ell, Point *pt) |
int | UT3D_el_elcoe (CurvElli *obj, polcoeff_d5 *ec, Point2 *pa, Point2 *pe, double zt) |
int | UT3D_elcoe_el (polcoeff_d5 *ig, CurvElli *el) |
int | UT3D_pt_intplell (int *pNr, Point *pa, Plane *pln, CurvElli *el) |
int | UT3D_pt_intlnel__ (int *np, Point xp[], Line *ln, CurvElli *el) |
int | UT3D_pt_intlnel_p (int *np, Point xp[], Line *ln, CurvElli *el) |
int UT3D_el_inv1 | ( | CurvElli * | el1 | ) |
int UT3D_el_inv2 | ( | CurvElli * | el1 | ) |
UT3D_el_inv2 turn direction (do not swap p1,p2)
double UT3D_par_par1ell | ( | double | lpar, | |
CurvElli * | el1 | |||
) |
double UT3D_par1_parell | ( | double * | lpar, | |
CurvElli * | el1 | |||
) |
UT3D_par1_parell angle in einen Parameterwert von 0-1 aendern par1_Angle = (par_Angle - StartAngle) / OpeningAngle
int UT3D_ck_el360 | ( | CurvElli * | el1 | ) |
UT3D_ck_el360 check if elli is 360-degree-elli RC = 0: YES, is elli RC = 1: NO if(UT3D_ck_el360 == YES) ...
UT3D_el_el2pt change start- and endpoint of elli
UT3D_angr_elpt parametric-Angle <- pt
UT3D_pt_elangd pt <- parametric-Angle.
int UT2D_pt_elangd | ( | Point2 * | pto, | |
double | lx, | |||
double | ly, | |||
double | angr | |||
) |
UT2D_pt_elangd pt <- parametric-Angle, rMaj, rMin. Einen Punkt auf der 2D-Ellipse aus einem Winkel errechnen. Der Winkel ist nur als Parameter zu sehen; eine Linie unter diesem Winkel schneidet nur den Innen- und Aussenkreis; nicht die Ellipse ! IN: angr = Winkel in rad, lx Laenge Hauptachse ly Laenge Nebenachse
UT3D_pt_ck_onel check if point lies on an (full) ellipse Check if a point lies on an (full) ellipse. It is assumed that the point lies in the plane of the ellipse. IN: Point *pt ... 3D-point CurvElli *el ... 3D-ellipse OUT: Returncodes: 0 = point is not on the ellipse 1 = point is on the ellipse -1 = internal error
UT3D_pt_elfoc focal points of ellipse Computation of the focal points of an ellipse. IN: CurvElli *el ... 3D-ellipse OUT: Point *fp1 ... focal point 1 (in direction of main axis) Point *fp2 ... focal point 2 Returncodes: 0 = OK -1 = input error
UT3D_vc_tangel Tangente duch Punkt an die Ellipse
UT3D_cv_ell Polygon <- Ellipse Polygonial curve from 3D-Ellipse. IN: CurvElli *el ... 3D-ellipse int ptmax ... maximal number of polygonpoints double stol ... maximal deviation of secant OUT: Point cv[] ... array of polygonpoints int *numpt ... number of polygonpoints Returncodes: 0 = OK 1 = ellipse is a line (a = 0) 2 = ellipse is a line (b = 0) -1 = degeneration of ellipse (a = b = 0)
UT3D_el_projcipl ellipse = project CIR -> PLN Project a circle onto a plane. IN: Plane *pl ... projection plane Circ *ci ... 3D - circle OUT: CurvElli *el ... ellipse Returncodes: 0 = OK see also UPRJ_app_el
UT3D_pt_projptel proj PT -> CRV-Ellipse Project a point onto an ellipse. All possible cases are considered! IN: CurvElli *ell ... a 3D - ellipse Point *pt ... a 3D - point OUT: int *numpe ... number of points (0-4 points out) Point *pe ... points on the ellipse all having the same minimal distance to the input point Returncodes: 0 = OK 1 = input error
int UT3D_el_elcoe | ( | CurvElli * | obj, | |
polcoeff_d5 * | ec, | |||
Point2 * | pa, | |||
Point2 * | pe, | |||
double | zt | |||
) |
UT3D_el_elcoe Ellipse <-- coeff-data (IGES) ellipse from IGES-data of type 104. pa,pe Beginn/Endpunkt der Elli in 2D-Zentrumslage (Center ist 0,0) zt = Hoehe der Z-Plane der Elli im 2D IN: IgesConic *ig ... IGES-data of type 104 (conic arc entity) OUT: Ellipse Returncodes: 0 = OK and conic is ellipse -1 = input error: data are no conic arc entity
int UT3D_elcoe_el | ( | polcoeff_d5 * | ig, | |
CurvElli * | el | |||
) |
UT3D_elcoe_el CoeffEllipse(IGES) <-- ellipse the ellipse lies in a plane parallel x,y-plane and its axes need not be parallel to x- resp. y- axis. IN: CurvElli *el ... ellipse in a plane parallel x,y-plane OUT: polcoeff_d5 ... IGES-coefficients of the ellipse equation Returncode: 0 = OK -1 = input error
UT3D_pt_intplell intersect plane ellipse
UT3D_pt_intlnel__ intersect line and ellipse Intersection of line and ellipse. The line need NOT lie in the plane of the ellipse. IN: Line *ln ... 3D-line CurvElli *el ... 3D-ellipse OUT: int *np ... number of intersection points (0,1,2) Point xp[] ... array of intersection points Returncodes: 0 = OK 1 = no intersection -1 = ellipse degenerated
UT3D_pt_intlnel_p intersection LN-ELL (gives 0/1/2 points) !! The line must lie in the plane of the ellipse. !! Intersection of 3D-line with 3D-ellipse. !! The line must lie in the plane of the ellipse. !! IN: Line *ln ... 3D-line CurvElli *el ... 3D-ellipse OUT: int *np ... number of intersection points (0,1,2) Point xp[] ... array of intersection points Returncodes: 0 = OK 1 = no intersection -1 = ellipse degenerated