# rotateA: Rotate Conic Section Equation Parameters Or A Dataset, With... In fitConic: Fit Data to Any Conic Section

 rotateA R Documentation

## Rotate Conic Section Equation Parameters Or A Dataset, With Respect To X-Y Axes.

### Description

rotateA Takes as input "parA," the 6 values of the general quadratic Ax^2 + Bxy + Cy^2 +Dx + Ey +F = 0 , and applies a rotation angle to the coefficient set. derotateA calculates the rotation angle required to change the conic section defined by 'parA' into one that is orthogonal to the cartesian axes. xyrot is a simple function to rotate the coordinate system by theta.

### Usage

rotateA(parA, theta)
derotateA(parA, ACmin = 1e-05)
xyrot(x, y = NULL, theta)

### Arguments

 parA the 6 values of the general quadratic Ax^2 + Bxy + Cy^2 +Dx + Ey +F = 0 theta the angle, in radians, to rotate the conic section. ACmin A tolerance parameter for deciding that the product of parameters A and C is actually zero (in which case the type of conic section is more likely a parabola or a degenerate case) x Either a vector of x-coordinates or a Nx2 array of x and y coordinates, in which case the y-input is ignored y A vector of y-coordinates.

### Details

derotateA uses the following standard formula to calculate the angle. Derotate means to remove the xy term, i.e. force B = 0 . Some algebra shows that cot(2theta) = (A-C)/B and thus tan(2theta) = B/(A-C)

For xyrot, the internal xy.coords is used. If you enter only a vector for x and nothing for y, this will feed the new vectors 1:N for x and x-input for y to the rotator, which is probably not useful.

### Value

For derotateA,

 parA the new 6-parameter set defining the derotated conic. theta the derived angle by which the parameter set was rotated

For rotateA

 parA the new 6-parameter set defining the rotated conic. theta the angle by which the parameter set was rotated

For xyrot a Nx2 array of the x,y coordinates of the rotated data set.

### Author(s)

Carl Witthoft, carl@witthoft.com

createConic

### Examples

# make an ellipse and derotate it
parGr <- c(-2.3,4.2,5,3,pi/4)
xe <-seq(-8,9,by=.05)
elipGr <- createConic(xe,  parGr, 'e')
plot(elipGr, t= 'l',  asp = TRUE)
# convert to ABCDEF form
parAr <- GtoA(parGr,'e')
elipAr <- createConic(xe,parAr\$parA)
points(elipAr,pch='.',col='red')
# remove rotation angle