Learn R Programming

ETRep (version 1.2.1)

create_Elliptical_Tube: Create a Discrete Elliptical Tube (ETRep)

Description

Constructs a discrete elliptical tube (ETRep) based on specified parameters.

Usage

create_Elliptical_Tube(
  numberOfFrames,
  method,
  materialFramesBasedOnParents = NA,
  initialFrame = diag(3),
  initialPoint = c(0, 0, 0),
  EulerAngles_Matrix = NA,
  ellipseResolution = 10,
  ellipseRadii_a,
  ellipseRadii_b,
  connectionsLengths,
  plotting = TRUE
)

Value

List containing tube details (orientation, radii, connection lengths, boundary points, etc.).

Arguments

numberOfFrames

Integer, specifies the number of consecutive material frames.

method

String, either "basedOnEulerAngles" or "basedOnMaterialFrames", defines the material frames method.

materialFramesBasedOnParents

Array (3 x 3 x numberOfFrames) with pre-defined material frames.

initialFrame

Matrix 3 x 3 as the initial frame

initialPoint

Real vector with three elemets as the initial point

EulerAngles_Matrix

Matrix of dimensions numberOfFrames x 3 with Euler angles to define material frames.

ellipseResolution

Integer, resolution of elliptical cross-sections (default is 10).

ellipseRadii_a

Numeric vector for the primary radii of cross-sections.

ellipseRadii_b

Numeric vector for the secondary radii of cross-sections.

connectionsLengths

Numeric vector for lengths of spinal connection vectors.

plotting

Logical, enables plotting of the ETRep (default is TRUE).

References

Taheri, M., Pizer, S. M., & Schulz, J. (2024). "The Mean Shape under the Relative Curvature Condition." arXiv. tools:::Rd_expr_doi("10.48550/arXiv.2404.01043")

Taheri Shalmani, M. (2024). "Shape Statistics via Skeletal Structures." University of Stavanger. tools:::Rd_expr_doi("10.13140/RG.2.2.34500.23685")

Examples

Run this code
numberOfFrames<-15
EulerAngles_alpha<-c(rep(0,numberOfFrames))
EulerAngles_beta<-c(rep(-pi/20,numberOfFrames))
EulerAngles_gamma<-c(rep(0,numberOfFrames))
EulerAngles_Matrix<-cbind(EulerAngles_alpha,
                          EulerAngles_beta,
                          EulerAngles_gamma)
tube <- create_Elliptical_Tube(numberOfFrames = numberOfFrames,
                               method = "basedOnEulerAngles",
                               EulerAngles_Matrix = EulerAngles_Matrix,
                               ellipseResolution = 10,
                               ellipseRadii_a = rep(3, numberOfFrames),
                               ellipseRadii_b = rep(2, numberOfFrames),
                               connectionsLengths = rep(4, numberOfFrames),
                               plotting = FALSE)
# Plotting
if (FALSE) {
 plot_Elliptical_Tube(tube = tube,plot_frames = FALSE,
                      plot_skeletal_sheet = TRUE,
                      plot_r_project = FALSE,
                      plot_r_max = FALSE,add = FALSE)
 }

Run the code above in your browser using DataLab