Learn R Programming

photobiology (version 0.11.4)

Rfr_from_n: Reflectance at a planar boundary

Description

The reflectance at the planar boundary between two media, or interface, can be computed from the relative refractive index. Reflectance depends on polarization, and the process of reflection can generate polarized light through selective reflection of \(s\) and \(p\) components. A perfectly flat (i.e., polished) interface creates specular reflection, and this is the case that these functions describe. These function describe a single interface, and for example in a glass pane, a light beam will cross two air-glass interfaces.

Usage

Rfr_from_n(angle_deg, angle = angle_deg/180 * pi, n = 1.5, p_fraction = 0.5)

Rfr_p_from_n(angle_deg, angle = angle_deg/180 * pi, n = 1.5)

Rfr_s_from_n(angle_deg, angle = angle_deg/180 * pi, n = 1.5)

Value

If n is a numeric vector the returned value is a vector of reflectances, while if n is a generic_spct object the returned value is a reflector_spct object.

Arguments

angle_deg, angle

numeric vector Angle of incidence of the light beam, in degrees or radians. If both are supplied, radians take precedence.

n

numeric vector, or generic_spct object Relative refractive index. The default 1.5 is suitable for crown glass or acrylic interacting with visible light. \(n\) depends on wavelength, more or less strongly depending on the material.

p_fraction

numeric in range 0 to 1. Polarization, defaults to 0.5 assuming light that is not polarized.

Details

These functions implement Fresnel's formulae. All parameters accept vectors as arguments. If both n and angle are vectors with length different from one, they should both have the same length. Reflectance depends on polarization, the \(s\) and \(p\) components need to be computed separately and added up. Rfr_from_n() is for non-polarized light, i.e., with equal contribution of the two components.

Examples

Run this code

Rfr_from_n(0:90)
Rfr_from_n(0:90, p_fraction = 1)
Rfr_from_n(0:90, n = 1.333) # water

Run the code above in your browser using DataLab