Author: Laurence D. Finston.
This copyright notice applies to the text and source code of this web site, and the graphics that appear on it. The software described in this text has its own copyright notice and license, which can be found in the distribution itself.
Copyright (C) 2005, 2006 The Free Software Foundation
Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of this license is included in the file COPYING.TXT
Last updated: April 29, 2006
Top |
Introduction |
Intersections |
Pseudo-Paraboloid |
Standardizing |
Classifying Points with Respect to a Parabola |
Contact |
2005.11.09.
I've now added the data type parabola to the 3DLDF language.
It corresponds to the type class Parabola in the C++ code.
The 3DLDF code for generating the following image is in prbla_00.ldf. TeX code for the including it is in prbla_00.txt.
The 3DLDF code for generating the following image is in prbla_05.ldf. TeX code for the including it is in prbla_05.txt.
The intersection points of a parabola p and a line seqment
l such that p and l are coplanar.
The 3DLDF code for generating the following image is in prbla_12.ldf. TeX code for the including it is in prbla_12.txt.
The intersection points of a parabola p and two line seqments
l and m, such that p and
l, and p and m are non-coplanar.
The 3DLDF code for generating the following image can be found in prbla_11.ldf. TeX code for the including it can be found in prbla_11.txt.
The intersection points of a parabola and a plane.
The following four images represent a paraboloid generated by rotating a parabola about the x-axis. The circles parallel to the axis of the parabola (the x-axis) are paths created by taking corresponding points from the parabola each time it's rotated.
The 3DLDF code for generating these images is in prbla_01.ldf. TeX code for including it is in prbla_01.txt.
Parabola: | |
vertex at origin | |
parameter = 3cm | |
axis = positive x-axis | |
Focus: | |
position: (0, 10cm, -20cm) | |
direction: (0, 10cm, 100cm) | |
distance: 15cm | |
Parallel Projection, X-Y Plane
Parallel Projection, X-Z Plane
(Similar to the last one, isn't it?)
Parallel Projection, Z-Y Plane
A parabola can be standardized or placed in standard position, i.e., in the x-z plane, with its vertex at the origin and its focus on the positive x-axis.
This is done using the standardize
operator, which
returns a transform
.
standardize
leaves the parabola
unchanged.
To actually put it into standard position, you must
multiply it by the transform
that was returned.
The following is the gist of the code for creating the following four images. The complete code can be found in prbla_06.ldf. TeX code for including them is in prbla_06.txt.
parabola p;
set p with_parameter 3 with_extent 7;
rotate p (75, 50);
shift p (3.5, 8, -1.75);
transform t;
t := standardize p;
p *= t;
Perspective Projection
Focus: | |
position: (-5cm, 10cm, -20cm) | |
direction: (-5, 10cm, 100cm) | |
distance: 15cm | |
Parallel Projection, X-Y Plane
Parallel Projection, X-Z Plane
Parallel Projection, Z-Y Plane
points
can be classified according to their position with respect to a
parabola
by using the location
operator:
parabola q; set q with_parameter 3 with_extent 7; point p; p := (2, 3, 4.5); r := p location q;
location
returns one of the following numerical values:
0:
The point
lies on the segment of the parabola represented
by the parabola
.
1:
The point
lies on the parabola, but not the segment, represented
by the parabola
object.
2:
The point
lies in the region enclosed by the branches of the parabola and the
line connecting the end points of the segment.
3:
The point
lies between the branches of the parabola, but
outside the region enclosed by them and the line connecting the
end points of the segment.
-1:
The point
is
coplanar with the parabola
,
but does not lie on the curve or between the branches.
-2:
The point
is not coplanar with the parabola
.
-3:
The parabola
is not parabolic.
-4:
The point
is invalid.
-5:
Something has gone terribly wrong.
The complete 3DLDF code for generating the following image can be found in prbla_10.ldf. TeX code for including it can be found in prbla_10.txt.