orient_feather: Determine the feather orientation In AvInertia: Calculate the Inertial Properties of a Flying Bird

Description

Code that returns the orientation of each primary and secondary feather on the wing.

Usage

 1 orient_feather(no_pri, no_sec, Pt1, Pt2, Pt3, Pt4, Pt8, Pt9, Pt10, Pt11, Pt12)

Arguments

 no_pri a scalar representing the amount of primary feathers. no_sec a scalar representing the amount of secondary feathers. Pt1 a 1x3 vector (x,y,z) representing the point on the shoulder joint (m). Pt2 a 1x3 vector (x,y,z) representing the point on the elbow joint (m). Pt3 a 1x3 vector (x,y,z) representing the point on the wrist joint (m). Pt4 a 1x3 vector (x,y,z) representing the point on the end of carpometacarpus (m). Pt8 a 1x3 vector (x,y,z) representing the point on tip of most distal primary (m). Pt9 a 1x3 vector (x,y,z) representing the point on the tip of the last primary to model as if it is on the end of the carpometacarpus (m). Pt10 1x3 vector (x,y,z) representing the point on tip of last primary to model as if it was distributed along the carpometacarpus (m). Usually the first secondary feather tip. Pt11 1x3 vector (x,y,z) representing the point on tip of most proximal secondary feather (m). Pt12 1x3 vector (x,y,z) representing the point on exterior shoulder position (wing root leading edge) (m).

Value

a list called "feather". This contains three matrices.

1. "loc_start" a matrix defining the 3D point where each feather starts. Rows are the different feathers and columns are x, y, z coordinates respectively.

2. "loc_end" a matrix defining the 3D point where each feather end. Rows are the different feathers and columns are x, y, z coordinates respectively.

3. "normal" a matrix that gives the vector that defines the normal to each feather plane. Rows are the different feathers and columns are x, y, z vector directions respectively.

Christina Harvey

Examples

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # refer to the vignette library(AvInertia) # load data data(dat_id_curr, package = "AvInertia") data(dat_bird_curr, package = "AvInertia") data(dat_feat_curr, package = "AvInertia") data(dat_bone_curr, package = "AvInertia") data(dat_mat, package = "AvInertia") data(clean_pts, package = "AvInertia") # 1. Determine the center of gravity of the bird's torso (including the legs) dat_torsotail_out = massprop_restbody(dat_id_curr, dat_bird_curr) # 2. Calculate the inertia of the flight feathers about the tip of the calamus feather_inertia <- compute_feat_inertia(dat_mat, dat_feat_curr, dat_bird_curr) # 3. Determine the center of gravity of one of the bird's wings dat_wing_out = massprop_birdwing(dat_id_curr, dat_bird_curr, dat_bone_curr, dat_feat_curr, dat_mat, clean_pts, feather_inertia, plot_var = 0) # Visualize the center of gravity of each wing component in the x and y axis dat_wing_out = massprop_birdwing(dat_id_curr, dat_bird_curr, dat_bone_curr, dat_feat_curr, dat_mat, clean_pts, feather_inertia, plot_var = "yx") # or the y and z axis dat_wing_out = massprop_birdwing(dat_id_curr, dat_bird_curr, dat_bone_curr, dat_feat_curr, dat_mat, clean_pts, feather_inertia, plot_var = "yz") # 4. Combine all data and obtain the center of gravity, moment of inertia # and principal axes of the bird curr_full_bird = combine_inertialprop(dat_torsotail_out,dat_wing_out, dat_wing_out, dat_id_curr, dat_bird_curr, symmetric=TRUE)

AvInertia documentation built on July 22, 2021, 9:08 a.m.