Point p = new Point(); double major = getHalfMajorAxisLength(); double minor = major * this.ratio; double x = major * Math.cos(this.startParameter); double y = minor * Math.sin(this.startParameter); double alpha = this.getRotationAngle(); if (alpha != 0.0) { double lx = x; x = lx * Math.cos(alpha) - y * Math.sin(alpha); y = lx * Math.sin(alpha) + y * Math.cos(alpha); } p.setX(x); p.setY(y); p.setZ(0.0); return p;
return this.getLocalPointAt(this.startParameter);
	public Point getLocalStartPoint() {		Point p = new Point();		double major = getHalfMajorAxisLength();		double minor = major * this.ratio;		double x = major * Math.cos(this.startParameter);		double y = minor * Math.sin(this.startParameter);		double alpha = this.getRotationAngle();		if (alpha != 0.0) {			double lx = x;			x = lx * Math.cos(alpha) - y * Math.sin(alpha);			y = lx * Math.sin(alpha) + y * Math.cos(alpha);		}		p.setX(x);		p.setY(y);		p.setZ(0.0);		return p;	}