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, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 The Free Software Foundation, Inc.
Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 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: June 9, 2022
Top |
Introduction |
Pascal's Theorem and the Braikenridge-Maclaurin Construction |
Ellipses |
Circles |
Parabolæ |
Hyperbolæ |
Contact |
2005.11.28.
The GNU 3DLDF language has a data type for each of the conic sections:
ellipse, circle, parabola, and hyperbola.
Each of these data types corresponds to a class in the C++
code. Ellipse and Circle were both part of 3DLDF from
the very first release, and each has a fairly complete set of functions
and parser rules. I haven't yet created web pages for them, but
they are documented in the
The 3DLDF User and Reference Manual for Release 1.1.5.1.
Of course, the parser rules for ellipse and circle are
not documented in the manual, because it predates the parser.
The types parabola and hyperbola are more recent. I
have written web pages for them, but the sets of functions and parser
rules for them are still incomplete. Nor are parabola and hyperbola
as bullet-proof
as ellipse and circle yet.
2007.06.26.
The Braikenridge-Maclaurin construction is a method of finding any
number of points on a conic section given five points on the curve.
The following examples (in the files braik_01.* and braik_02.*)
use the 3DLDF language to make drawings illustrating the
Braikenridge-Maclaurin construction. They were written before I'd
programmed the data type conic_section_lattice the operations
that can be applied to objects of this type, in particular
get_point . See below for an example demonstrating the use of
conic_section_lattice (
Ellipse
GNU 3DLDF code: | braik_01.ldf
|
TeX code: | braik_01.txt
|
PDF file: | braik_01.pdf
|
PostScript file: | braik_01.ps
|
Compressed (gzipped) PostScript file: | braik_01.ps.gz
|
Parabola
GNU 3DLDF code: | braik_02.ldf
|
TeX code: | braik_02.txt
|
PDF file: | braik_02.pdf
|
Compressed (gzipped) PDF file: | braik_02.pdf.gz
|
PostScript file: | braik_02.ps
|
Compressed (gzipped) PostScript file: | braik_02.ps.gz
|
2007.08.07.
The following example uses the get_point operation applied to
a conic_section_lattice object to find the points on the conic
section. In this case, it's an ellipse, but the
Braikenridge-Maclaurin construction works for any conic section.
Shifting the lattice
makes it possible to keep the intersection
points X, Y, and Z within the boundaries of the
ellipse. With a parabola or hyperbola, this isn't possible for the
two extreme points, but it's still useful for trying to keep the
intersection points and the point found on the curve within
reasonable limits.
GNU 3DLDF code: | braik_03.ldf
|
TeX code: | braik_03.txt
|
PDF file: | braik_03.pdf
|
Compressed (gzipped) PDF file: | braik_03.pdf.gz
|
PostScript file: | braik_03.ps
|
Compressed (gzipped) PostScript file: | braik_03.ps.gz
|