# The GNU 3DLDF Conic Sections Page

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

Back to main page

## Introduction

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.

Back to contents
Back to main page

## Pascal's Theorem and the Braikenridge-Maclaurin Construction

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 (braik_03.*).

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

Back to contents