<?xml version="1.0" encoding="iso-8859-1"?>
<!-- tenseg/book/chap8.xml  A Practical Guide to Tensegrity Design
     Copyright 2004-2008 Robert William Burkhardt, Jr. -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" 
          "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"
          [<!ENTITY mathml "http://www.w3.org/1998/Math/MathML">]>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1"/>
<meta name="keywords"
      content="tensegrity, treatise, how-to, primer, thesis, basic, simple,
               mathematics, analysis, clearance, interference"/>
<meta name="description"
      content="Formulas for analyzing clearances in tensegrities."/>
<title>A Practical Guide to Tensegrity Design:
8&nbsp;Analyzing Clearances in Tensegrities</title>
<link rel="stylesheet" type="text/css" href="tenseg.css"/>
</head>

<body>
<p class="link">
A Practical Guide to Tensegrity Design<br/>
<a href="index.html#chap8">Table of Contents</a><br/>
7&nbsp;<a href="chap7_1.html">Tensegrity Member Force Analysis</a>
</p>

<p class="chapter-header">
Chapter 8
<br/><br/>

Analyzing Clearances in Tensegrities
</p>
<!-- Ref: Notes 3/27/90 -->

<p class="section-header-level1" id="clearance_intro">
8.1&nbsp;Clearance Analysis:  Introduction
</p>

<p>
A practical factor which must be taken into account in analyzing the
outcome of a tensegrity mathematical programming problem is the clearance
between (in other words, the distance separating) one member and another.
Especially with truss tensegrities, solutions to a problem can very easily
have clearances which would result in
one member inadvertently intersecting another if the model were implemented.
If this is the case, adjustments must be made using length constraints,
objective function weights and/or model configuration until
satisfactory clearances are obtained.
</p>

<p class="section-header-level1" id="clearance_formulas">
8.2&nbsp;Clearance Analysis:  Formulas
</p>

<p>
Two members can be modeled mathematically as two line segments in space.
When neither end point of the two line segments coincides, the parameter
of interest is the minimum distance between the two line segments.
The position of the points on the two segments where this minimum is attained
may also be of interest.
When the two segments coincide at one end point, the angle between the
two segments may be of concern.
</p>

<p class="section-header-level2" id="clearance_distance">
8.2.1&nbsp;Clearance Formulas: Distance Between Two Line Segments
</p>

<p>
Let <math xmlns="&mathml;"><mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover></math>
and <math xmlns="&mathml;"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover></math>
be two line segments.  An arbitrary
point, call it <math xmlns="&mathml;"><msub><mi>P</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub></math>,
on the line obtained by extending the segment
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover></math>
can be generated as a function of a scalar multiplier,
call it <math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub></math>,
using the formula
</p>

<p class="center">
<math xmlns="&mathml;"><mrow><msub><mi>P</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub>
<mo>&equiv;</mo>
<mi>A</mi><mo>+</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub>
<mo>&InvisibleTimes;</mo><mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow>
</mfenced>
</mrow></math>.
</p>

<p>
If <math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub></math>
is between 0 and 1, this point will lie on the segment
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover></math>.
Similarly, a point
on the line coinciding with
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover></math>
can be generated using the formula
</p>

<p class="center">
<math xmlns="&mathml;"><mrow><msub><mi>P</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&equiv;</mo>
<mi>C</mi><mo>+</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo><mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow>
</mfenced>
</mrow></math>.
</p>

<p>
To find the minimum distance between these two <b>lines</b> (which is not
necessarily the distance between the two line <b>segments</b>), values for
<math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub></math> and
<math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub></math>
can be found which minimize the
distance between
<math xmlns="&mathml;"><msub><mi>P</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub></math>
and <math xmlns="&mathml;"><msub><mi>P</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub></math>.
Thus, the following unconstrained programming problem is arrived at:
</p>

<p class="center">
<math xmlns="&mathml;"><mtable>
<mtr><mtd><mtext>minimize</mtext></mtd>
<mtd>
 <mrow><msup><mfenced open="|" close="|">
 <mrow><msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi>
 </mrow></msub>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced><mn>2</mn></msup><mo>&equiv;</mo>
 <mfenced><mrow><msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo>
 <mi>B</mi></mrow></msub>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced><mo>&sdot;</mo>
 <mfenced><mrow><msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo>
 <mi>B</mi></mrow></msub>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced></mrow>
 </mtd></mtr>

 <mtr><mtd><mrow><msub><mi>&lambda;</mi>
 <mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub><mo>,</mo>
 <msub><mi>&lambda;</mi>
 <mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd></mtr>
</mtable>
</math>
</p>

<p>
This problem can be solved by differentiating the objective function
with respect to <math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub></math>
and <math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub></math>,
setting the two resulting
equations equal to zero and solving the implied system for
<math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub></math>
and <math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub></math>.
</p>

<p>
Substituting using
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo>
<mi>B</mi></mrow></msub>
<mo>-</mo>
<msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
</msub>
<mo>=</mo>
<mi>A</mi><mo>+</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub>
<mo>&InvisibleTimes;</mo><mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow>
</mfenced>
<mo>-</mo>
<mfenced><mrow><mi>C</mi><mo>+</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo><mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow>
</mfenced></mrow></mfenced>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<mphantom>
<msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo>
<mi>B</mi></mrow></msub>
<mo>-</mo>
<msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
</msub>
</mphantom>
<mo>=</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced><mo>+</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub>
<mo>&InvisibleTimes;</mo><mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow>
</mfenced>
<mo>-</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo><mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow>
</mfenced>
</mrow></math>
</p>

<p>
and differentiating results in the system:
</p>

<p class="center">
<math xmlns="&mathml;">
<mrow>
<mn>2</mn><mo>&InvisibleTimes;</mo><msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced><mn>2</mn></msup>
<mo>-</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>+</mo><mn>2</mn><mo>&InvisibleTimes;</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow></mfenced>
<mo>=</mo><mn>0</mn></mrow></math><br/>
<math xmlns="&mathml;">
<mrow>
<mo>-</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo><msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>+</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced><mn>2</mn></msup>
<mo>-</mo><mn>2</mn><mo>&InvisibleTimes;</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>=</mo><mn>0</mn></mrow></math>
</p>

<p>
Since
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow></mfenced>
<mo>&sdot;</mo>
 <mfenced><mrow><msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo>
 <mi>B</mi></mrow></msub>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced>
<mo>=</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced><mn>2</mn></msup>
<mo>-</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>+</mo>
<mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
</mrow></math>
</p>

<p>
and
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>&sdot;</mo>
 <mfenced><mrow><msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo>
 <mi>B</mi></mrow></msub>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced>
<mo>=</mo>
<mo>-</mo><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced><mn>2</mn></msup>
<mo>+</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow></mfenced>
<mo>+</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
</mrow></math>
</p>

<p>
this system implies
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mfenced><mrow><mi>B</mi><mo>-</mo><mi>A</mi></mrow></mfenced>
<mo>&sdot;</mo>
 <mfenced><mrow><msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo>
 <mi>B</mi></mrow></msub>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced>
<mo>=</mo><mn>0</mn>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>&sdot;</mo>
 <mfenced><mrow><msub><mi>P</mi><mrow><mi>A</mi><mo>&InvisibleTimes;</mo>
 <mi>B</mi></mrow></msub>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced>
<mo>=</mo><mn>0</mn>
</mrow></math>
</p>

<p>
In other words, the line segment connecting the two closest points on the
lines is orthogonal to both lines.
</p>

<p>
This system can be solved to find values for
<math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>A</mi><mo>&InvisibleTimes;</mo><mi>B</mi></mrow></msub></math> and
<math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub></math>.
If either of these values is outside the range
<math xmlns="&mathml;">
<mfenced open="[" close="]"><mn>0.0</mn><mn>1.0</mn></mfenced></math>,
then this solution is not valid as the distance
between the two line <b>segments</b> and boundary solutions must be searched.
</p>

<p>
The first sort of boundary solution which can be investigated
is one in which the minimum distance is attained at one
end point of one of the segments with the other minimum point
being an interior point of the other segment.
Calculating this distance involves another minimization
problem.  For example, to calculate the distance between
<math xmlns="&mathml;"><mi>A</mi></math> and
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover></math>
the following minimization problem would need to be solved:
</p>

<p class="center">
<math xmlns="&mathml;"><mtable>
<mtr><mtd><mtext>minimize</mtext></mtd>
<mtd>
 <mrow><msup><mfenced open="|" close="|">
 <mrow><mi>A</mi><mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced><mn>2</mn></msup><mo>&equiv;</mo>
 <mfenced><mrow><mi>A</mi>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced><mo>&sdot;</mo>
 <mfenced><mrow><mi>A</mi>
 <mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced></mrow>
 </mtd></mtr>

 <mtr><mtd><msub><mi>&lambda;</mi>
 <mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
 </mtd></mtr>
 <mtr><mtd></mtd></mtr>
</mtable>
</math>
</p>

<p>
This problem can be solved by differentiating the objective function
with respect to
<math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub></math>,
setting the resulting
equation equal to zero and solving the implied system for
<math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub></math>.
</p>

<p>
Substituting using
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mi>A</mi><mo>-</mo>
<msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
</msub>
<mo>=</mo>
<mi>A</mi><mo>-</mo>
<mfenced><mrow><mi>C</mi><mo>+</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo><mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow>
</mfenced></mrow></mfenced>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<mphantom>
<mi>A</mi><mo>-</mo>
<msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
</msub>
</mphantom>
<mo>=</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>-</mo>
<msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo><mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow>
</mfenced>
</mrow></math>
</p>

<p>
and differentiating results in the equation
</p>

<p class="center">
<math xmlns="&mathml;">
<mrow>
<mn>2</mn><mo>&InvisibleTimes;</mo><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced><mn>2</mn></msup>
<mo>-</mo><mn>2</mn><mo>&InvisibleTimes;</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>=</mo><mn>0</mn></mrow></math>
</p>

<p>
or
</p>

<p class="center">
<math xmlns="&mathml;">
<mrow>
<msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>=</mo>
<mfrac>
<mrow>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced></mrow>
<msup><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced><mn>2</mn></msup>
</mfrac>
</mrow></math>
</p>

<p>
Since
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>&sdot;</mo>
 <mfenced><mrow><mi>A</mi><mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced>
<mo>=</mo>
<mo>-</mo><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub>
<mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced><mn>2</mn></msup>
<mo>+</mo>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced><mo>&sdot;</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
</mrow></math>
</p>

<p>
the solution equation implies
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mfenced><mrow><mi>D</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>&sdot;</mo>
 <mfenced><mrow><mi>A</mi><mo>-</mo>
 <msub><mi>P</mi><mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow>
 </msub></mrow></mfenced>
<mo>=</mo><mn>0</mn>
</mrow></math>
</p>

<p>
In other words, the line segment connecting
<math xmlns="&mathml;"><mi>A</mi></math> with the closest point on
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover></math>
is orthogonal to
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover></math>.
</p>

<p>
If <math xmlns="&mathml;"><msub><mi>&lambda;</mi>
<mrow><mi>C</mi><mo>&InvisibleTimes;</mo><mi>D</mi></mrow></msub></math>
is outside the range
<math xmlns="&mathml;">
<mfenced open="[" close="]"><mn>0.0</mn><mn>1.0</mn></mfenced></math>,
then again the value is not valid as a minimum distance to the
line segment from the point, and the minimum of
<math xmlns="&mathml;"><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>C</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced></math>
and <math xmlns="&mathml;"><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced></math>
should be selected as the value.
<math xmlns="&mathml;"><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>C</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced></math> is
calculated using the Pythagorean distance formula
<math xmlns="&mathml;"><mrow><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>C</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced>
<mo>=</mo>
<msqrt><mrow><mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
<mo>&sdot;</mo>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>C</mi></mrow></mfenced>
</mrow></msqrt></mrow></math> and
<math xmlns="&mathml;"><mfenced open="|" close="|">
<mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced></math>
is computed similarly.
</p>

<p>
In searching for a boundary value for the minimum length between
the two segments, all four boundary possibilities should be examined
(<math xmlns="&mathml;"><mi>A</mi></math> and
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover></math>,
<math xmlns="&mathml;"><mi>B</mi></math> and
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover></math>,
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover></math> and
<math xmlns="&mathml;"><mi>C</mi></math>,
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover></math> and
<math xmlns="&mathml;"><mi>D</mi></math>)
and the minimum of these taken to be the solution.
</p>

<p class="section-header-level2" id="clearance_angle">
8.2.2&nbsp;Clearance Formulas: Angle Between Two Line Segments
</p>

<p>
In some situations, the geometry and position of a hub may dictate
that problems will ensue if the angle between two of the members
the hub connects is too small.  In these cases, it is advisable
to compute the angle between the centerlines of the relevant members
and see if it is greater than the necessary threshold.
</p>

<p>
The formula for the angle between two line segments
is derived from the Schwarz
inequality.<sup><a href="#tx1" id="rf1">1</a></sup>
For example, the angle between the
two line segments
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover></math> and
<math xmlns="&mathml;"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover></math>
is equal to
</p>

<p class="center">
<math xmlns="&mathml;"><mrow><mo>arccos</mo><mfenced><mfrac><mrow>
<mfenced><mrow><mi>A</mi><mo>-</mo><mi>B</mi></mrow></mfenced>
<mo>&sdot;</mo>
<mfenced><mrow><mi>C</mi><mo>-</mo><mi>D</mi></mrow></mfenced>
</mrow><mrow>
<mfenced open="|" close="|"><mover accent="false"><mrow><mi>A</mi>
<mo>&InvisibleTimes;</mo><mi>B</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced>
<mo>&InvisibleTimes;</mo>
<mfenced open="|" close="|"><mover accent="false"><mrow><mi>C</mi>
<mo>&InvisibleTimes;</mo><mi>D</mi></mrow><mo>&OverBar;</mo></mover>
</mfenced>
</mrow></mfrac></mfenced></mrow></math>
</p>

<p class="section-header-level2" id="subsec_clearex">
8.2.3&nbsp;Clearance Formulas: A Sample Application
</p>
<!-- Ref:  v04oct_s/bk_stg1.clr
           (book2.rc with bk_stg1.dat and #28 (icten4) length = 1.0) -->

<p>
The line segment formulas were used to look at the clearances of
the struts and interlayer tendons of the 4&nu; t-octahedron spherical truss
of <a href="chap5_3.xml">Section&nbsp;5.3</a>.
The planned realization in mind was a
structure at a scale of 1 model unit = 90 mm
using 8-mm-diameter wooden dowels for struts and fishing line for tendons.
The clearance goal was one strut diameter between the outer
surfaces of any two members.
This reduced to 2 strut diameters between two strut center lines,
1.5 strut diameters between a strut center line and a tendon
center line, and 1 strut diameter between two tendon center lines.
The diameter of the tendon was regarded as negligible.
In model units, these thresholds were
<math xmlns="&mathml;"><mrow>
<mfrac><mrow><mn>2</mn><mo>&sdot;</mo><mn>8</mn></mrow><mn>90</mn></mfrac>
<mo>=</mo><mn>0.18</mn>
</mrow></math>,
<math xmlns="&mathml;"><mrow>
<mfrac><mrow><mn>1.5</mn><mo>&sdot;</mo><mn>8</mn></mrow><mn>90</mn></mfrac>
<mo>=</mo><mn>0.13</mn>
</mrow></math> and
<math xmlns="&mathml;"><mrow>
<mfrac><mrow><mn>1</mn><mo>&sdot;</mo><mn>8</mn></mrow><mn>90</mn></mfrac>
<mo>=</mo><mn>0.09</mn>
</mrow></math>
respectively.
</p>

<p>
It was found strut member #3 and a
transformed<sup><a href="#tx2" id="rf2">2</a></sup>
version of tendon member #5 had a poor clearance of 0.081 model units.
In addition, at 0.17 model units the clearance between the
two strut members #1 and #3 was marginally a problem.
Increasing the constrained length of the highly-tensioned tendon member #28
from 1 to 1.4 model units increased the first clearance to 0.16 model units
and the second clearance to 0.20 model units
without creating clearance problems between other members.
<a href="#tab_toctrlen">Table&nbsp;8.1</a> shows the values for the
lengths and relative member forces of the revised model.
<a href="#tab_toctrcoord">Table&nbsp;8.2</a> shows the revised values
for the coordinates of the basic points.
</p>

<!-- Ref:  v04oct_s/book.stage2.dat (set mu = 0 in book.rc) -->
<table id="tab_toctrlen" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<colgroup></colgroup>
<thead>
<tr valign="bottom"><td align="center">&nbsp;Member&nbsp;<br/>#</td>
<td align="center">&nbsp;Length&nbsp;</td>
<td align="center">&nbsp;Relative&nbsp;<br/>Force</td>
</tr>
</thead>

<tbody>
<tr><td align="center">1</td>
<td align="right">&nbsp;3.000000&nbsp;</td>
<td align="right">&nbsp;-12.309&nbsp;</td></tr>
<tr><td align="center">2</td>
<td align="right">&nbsp;3.000000&nbsp;</td>
<td align="right">&nbsp;-11.701&nbsp;</td></tr>
<tr><td align="center">3</td>
<td align="right">&nbsp;3.000000&nbsp;</td>
<td align="right">&nbsp;-11.604&nbsp;</td></tr>
<tr><td align="center">4</td>
<td align="right">&nbsp;3.000000&nbsp;</td>
<td align="right">&nbsp;-11.265&nbsp;</td></tr>
</tbody>

<tbody>
<tr><td align="center">5</td>
<td align="right">&nbsp;2.357656&nbsp;</td>
<td align="right">&nbsp;4.715&nbsp;</td></tr>
<tr><td align="center">6</td>
<td align="right">&nbsp;2.389582&nbsp;</td>
<td align="right">&nbsp;4.779&nbsp;</td></tr>
<tr><td align="center">7</td>
<td align="right">&nbsp;2.437046&nbsp;</td>
<td align="right">&nbsp;4.874&nbsp;</td></tr>
<tr><td align="center">8</td>
<td align="right">&nbsp;2.365863&nbsp;</td>
<td align="right">&nbsp;4.732&nbsp;</td></tr>
</tbody>

<tbody>
<tr><td align="center">9</td>
<td align="right">&nbsp;2.030353&nbsp;</td>
<td align="right">&nbsp;4.061&nbsp;</td></tr>
<tr><td align="center">10</td>
<td align="right">&nbsp;2.047569&nbsp;</td>
<td align="right">&nbsp;4.095&nbsp;</td></tr>
<tr><td align="center">11</td>
<td align="right">&nbsp;2.040178&nbsp;</td>
<td align="right">&nbsp;4.080&nbsp;</td></tr>
<tr><td align="center">12</td>
<td align="right">&nbsp;1.640244&nbsp;</td>
<td align="right">&nbsp;3.280&nbsp;</td></tr>
</tbody>

<tbody>
<tr><td align="center">13</td>
<td align="right">&nbsp;1.000000&nbsp;</td>
<td align="right">&nbsp;3.950&nbsp;</td></tr>
<tr><td align="center">14</td>
<td align="right">&nbsp;1.000000&nbsp;</td>
<td align="right">&nbsp;5.618&nbsp;</td></tr>
<tr><td align="center">15</td>
<td align="right">&nbsp;1.000000&nbsp;</td>
<td align="right">&nbsp;4.330&nbsp;</td></tr>
<tr><td align="center">16</td>
<td align="right">&nbsp;1.000000&nbsp;</td>
<td align="right">&nbsp;5.030&nbsp;</td></tr>
</tbody>

<tbody>
<tr><td align="center">17</td>
<td align="right">&nbsp;2.498276&nbsp;</td>
<td align="right">&nbsp;0.999&nbsp;</td></tr>
<tr><td align="center">18</td>
<td align="right">&nbsp;2.732085&nbsp;</td>
<td align="right">&nbsp;1.093&nbsp;</td></tr>
<tr><td align="center">19</td>
<td align="right">&nbsp;2.745418&nbsp;</td>
<td align="right">&nbsp;1.098&nbsp;</td></tr>
<tr><td align="center">20</td>
<td align="right">&nbsp;2.924998&nbsp;</td>
<td align="right">&nbsp;1.170&nbsp;</td></tr>
</tbody>

<tbody>
<tr><td align="center">21</td>
<td align="right">&nbsp;1.382591&nbsp;</td>
<td align="right">&nbsp;1.383&nbsp;</td></tr>
<tr><td align="center">22</td>
<td align="right">&nbsp;1.427206&nbsp;</td>
<td align="right">&nbsp;1.427&nbsp;</td></tr>
<tr><td align="center">23</td>
<td align="right">&nbsp;1.500065&nbsp;</td>
<td align="right">&nbsp;1.500&nbsp;</td></tr>
<tr><td align="center">24</td>
<td align="right">&nbsp;0.943181&nbsp;</td>
<td align="right">&nbsp;0.943&nbsp;</td></tr>
</tbody>

<tbody>
<tr><td align="center">25</td>
<td align="right">&nbsp;1.000000&nbsp;</td>
<td align="right">&nbsp;6.055&nbsp;</td></tr>
<tr><td align="center">26</td>
<td align="right">&nbsp;1.000000&nbsp;</td>
<td align="right">&nbsp;6.400&nbsp;</td></tr>
<tr><td align="center">27</td>
<td align="right">&nbsp;1.000000&nbsp;</td>
<td align="right">&nbsp;5.535&nbsp;</td></tr>
<tr><td align="center">28</td>
<td align="right">&nbsp;1.000000&nbsp;</td>
<td align="right">&nbsp;6.260&nbsp;</td></tr>
</tbody>

</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;8.1:  4&nu; T-Octahedron:
Revised Member Lengths and Forces
</td></tr></table>

<div class="spacer"><br/><br/></div>

<!-- Ref:  v04oct_s/book.stage2.dat -->
<table id="tab_toctrcoord" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr valign="bottom">
<td><table cellpadding="0" cellspacing="0" rules="none" class="fill"><tr>
<td>&nbsp;Point&nbsp;</td></tr></table></td>
<td align="center">&nbsp;Coordinates&nbsp;<br/>
<table cellpadding="0" cellspacing="0" border="0" rules="none" class="fill">
<tr><td class="w33" align="center">
<math xmlns="&mathml;"><mi>x</mi></math></td>
<td class="w34" align="center">
<math xmlns="&mathml;"><mi>y</mi></math></td>
<td class="w33" align="center">
<math xmlns="&mathml;"><mi>z</mi></math></td>
</tr></table></td></tr>
</thead>

<tbody>
<tr><td align="center">
<table cellpadding="0" cellspacing="0" rules="none">
<tr><td>
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math>
</td></tr>
<tr><td>
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math>
</td></tr>
<tr><td>
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math>
</td></tr>
<tr><td>
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>
</td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0"  rules="none" class="fill">
<tr><td align="right" class="w33">&nbsp;1.092297&nbsp;</td>
<td align="right" class="w34">-0.280953&nbsp;</td>
<td align="right" class="w33">&nbsp;2.035248&nbsp;</td></tr>
<tr><td align="right" class="w34">-0.128883&nbsp;</td>
<td align="right" class="w33">&nbsp;0.310054&nbsp;</td>
<td align="right" class="w33">&nbsp;2.301681&nbsp;</td></tr>
<tr><td align="right" class="w33">&nbsp;0.820711&nbsp;</td>
<td align="right" class="w34">&nbsp;1.137818&nbsp;</td>
<td align="right" class="w33">&nbsp;1.630864&nbsp;</td></tr>
<tr><td align="right" class="w33">-1.029370&nbsp;</td>
<td align="right" class="w34">&nbsp;1.245104&nbsp;</td>
<td align="right" class="w33">&nbsp;1.777463&nbsp;</td></tr>
</table></td></tr>
</tbody>

<tbody>
<tr><td align="center">
<table cellpadding="0" cellspacing="0" rules="none">
<tr><td>
<math xmlns="&mathml;"><msubsup><mi>P</mi><mn>1</mn><mo>'</mo></msubsup></math>
</td></tr>
<tr><td>
<math xmlns="&mathml;"><msubsup><mi>P</mi><mn>2</mn><mo>'</mo></msubsup></math>
</td></tr>
<tr><td>
<math xmlns="&mathml;"><msubsup><mi>P</mi><mn>3</mn><mo>'</mo></msubsup></math>
</td></tr>
<tr><td>
<math xmlns="&mathml;"><msubsup><mi>P</mi><mn>4</mn><mo>'</mo></msubsup></math>
</td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0"  rules="none" class="fill">
<tr><td align="right" class="w33">&nbsp;1.578759&nbsp;</td>
<td align="right" class="w34">&nbsp;0.504378&nbsp;</td>
<td align="right" class="w33">&nbsp;3.382666&nbsp;</td></tr>
<tr><td align="right" class="w34">&nbsp;0.618364&nbsp;</td>
<td align="right" class="w33">&nbsp;0.662396&nbsp;</td>
<td align="right" class="w33">&nbsp;3.612169&nbsp;</td></tr>
<tr><td align="right" class="w34">&nbsp;1.160445&nbsp;</td>
<td align="right" class="w33">&nbsp;1.393792&nbsp;</td>
<td align="right" class="w33">&nbsp;3.198396&nbsp;</td></tr>
<tr><td align="right" class="w34">-1.675120&nbsp;</td>
<td align="right" class="w33">&nbsp;2.090616&nbsp;</td>
<td align="right" class="w33">&nbsp;2.491573&nbsp;</td></tr>
</table></td></tr>
</tbody>

</table>
<!-- Ref:  v04oct_s/bk_stg2.dat -->
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;8.2:  4&nu; T-Octahedron:
Revised Basic Point Coordinates
</td></tr></table>

<p class="section-header-level2" id="subsec_clearex2">
8.2.4&nbsp;Clearance Formulas: Another Sample Application
</p>

<p>
In the double-layer tensegrities considered in Chapters
<a href="chap5_1.html">5</a> and <a href="chap6_1.html">6</a>,
when lower-frequency designs are considered, the angle between a secondary
interlayer tendon and the strut it connects with on the
outer layer may be very small and allow the tendon
to rub against projections on the hub or strut at that
point.  This is because of the shallowness of the corresponding
secondary tripod.  At high-enough frequencies, the situation
approximates the planar situation illustrated in
<a href="appendixA.html#fig_tp_plane">Figure&nbsp;A.2</a>
and no special consideration
needs to be taken of the secondary interlayer tendons
since the angles there will be adequate if the angles for
the primary interlayer tendons are.  The cure for a deficiency
in either of these angles is to shrink the radius of the
inner tendon network.
</p>

<p>
Therefore, as an example of the use of member-angle computations,
the angles between the secondary interlayer tendons and the
struts they are attached to on the outer layer will be computed
for the 4&nu; t-octahedron spherical truss solution
obtained in <a href="#subsec_clearex">Section&nbsp;8.2.3</a>.
</p>

<!-- Ref:  v04oct_s/book.stage2.dat -->
<table id="tab_toctangles" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<colgroup></colgroup>
<colgroup></colgroup>
<colgroup></colgroup>
<thead>
<tr align="center" valign="bottom">
<td>&nbsp;Strut&nbsp;<br/>#</td>
<td>Primary<br/>&nbsp;Tendon #&nbsp;</td><td>&nbsp;Angle&nbsp;</td>
<td>&nbsp;Secondary&nbsp;<br/>&nbsp;Tendon #&nbsp;</td>
<td>&nbsp;Angle&nbsp;</td>
</tr>
</thead>
<tbody>
<tr align="center"><td>1</td>
<td>5</td><td>&nbsp;16.5692&nbsp;</td>
<td>&nbsp;&nbsp;9</td><td>&nbsp;5.67875&nbsp;</td></tr>
<tr align="center"><td>2</td>
<td>6</td><td>17.0124</td><td>10</td><td>7.04962</td></tr>
<tr align="center"><td>3</td>
<td>7</td><td>17.5822</td><td>11</td><td>6.50225</td></tr>
<tr align="center"><td>4</td>
<td>8</td><td>16.6881</td><td>12</td><td>8.61599</td></tr>
</tbody>
</table>
<!-- Ref:  v04oct_s/book2.rc with bk_stg2.dat -->
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;8.3:  4&nu; T-Octahedron:
Strut/Interlayer-Tendon Angles (in Degrees)
</td></tr></table>

<p>
<a href="#tab_toctangles">Table&nbsp;8.3</a> summarizes the results.
The angles at the feet of the outer-pointing t-tripods are
two to three times as large as the angles at the feet of the inner-pointing
t-tripods.  At high-enough frequencies, they would approach equality.
</p>

<div id="footnotes">
<hr class="footmark"/>
<p class="note">
<sup><a href="#rf1" id="tx1">1</a></sup>
  See <a href="refs.html#Lang71"><i>Lang71</i></a>, p.&nbsp;22.
  The Schwarz inequality is also
  known as the Cauchy-Schwarz inequality or the
  Cauchy-Buniakovskii-Schwarz inequality.
  </p>

<p class="note">
<sup><a href="#rf2" id="tx2">2</a></sup>
 The transformation was
 <math xmlns="&mathml;"><mrow>
 <mfenced><mi>x</mi><mi>y</mi><mi>z</mi></mfenced>
 <mo>&rArr;</mo>
 <mfenced><mrow><mo>-</mo><mi>x</mi></mrow>
 <mrow><mo>-</mo><mi>y</mi></mrow><mi>z</mi></mfenced>
 </mrow></math>.
 </p>
</div>

<p class="link">
<a href="index.html#chap8">Table of Contents</a>
</p>

</body>
</html>

