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 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
|Pascal's Theorem and the Braikenridge-Maclaurin Construction|
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 184.108.40.206. 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
bullet-proof as ellipse and circle yet.
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
|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
|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
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.
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
|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