30 Years
QT software
1988 - 2018
QT software GmbH
Karl-Friedrich-Gauss-Str. 18
D-45657 Recklinghausen
VAT ID: DE240717131
D-U-N-S© 31-560-9789
The qtCircles Library provides procedures for solving some common geometric calculation tasks related to circles. This allows programmers to save their time for more demanding tasks.
qtCircles contains simple functions as well as also some that require some more mathematics. For example, qtCircle allows to calculate
a circle's y-coordinates, its first and second derivatives (y'(x)=dy(x)/dx,
y''(x)=d²y(x)/dx²) for given x-coordinates. Somewhat more demanding
are those for calculation of intersections points (of 2 circles, line
with circle) or those for determination of a circle's parameters (origin
x0, y0, and radius) for 3 or more given points. In the latter case a fit-algorithm
is applied.
The following table lists the qtCircles functions.
Function Group / qtCircles Procedure |
Function |
Initialization | |
qtCircles_Initialize | initialize qtCircles |
Circle Coordinates | |
qtCircles_Calc_Y | returns a single y-coordinate value for a given x-coordinate |
qtCircles_Calc_YArr | returns y-coordinates for a list of given x-coordinates (array) |
qtCircles_Calc_dYdX | calculates the first derivative of the circle equation (y'(x)=dy(x)/dx) for a given x-coordinate |
qtCircles_Calc_d2YdX2 |
calculates the second derivative of the circle equation (y''(x)=d²y(x)/dx²) for a given x-coordinate |
qtCircles_Calc_Angle | returns the angle between the x-axis and the radius vector from the circle's origin to a point on the circle |
Circle Parameters | |
qtCircles_Calc_Params | returns the circle's parameters x0, y0 and R for three given points |
qtCircles_Fit | determines a circle's parameters x0, y0, and R for three or more given points lying on or near to a circle (the parameters are fitted using the least square method) |
Intersection and Tangent Points | |
qtCircles_CirclesIntersection | returns the intersection points of two circles intersecting each other |
qtCircles_IntersectionCircleLine | returns the intersection points of a line intersecting a circle |
qtCircles_TangentPoints | returns the coordinates of the tangent points for the two lines from point P (xP, yP) that touch a circle defined by (x0,y0,R) |
qtCircles_CircularSegmentArea | returns the area between a secante and its circle |
Other Functions | |
qtCircles_Set_Eps | sets the the internal threshold value for testing a value against 0 |
Documentation / Online-Help
Please see the
qtCircles
Online-Help for Details regarding the usage of these functions.
This online help was generated using the freely available documentation
tools doxygen and doxywizard.
qtCircles shall not only ease your work, but also may serve as an example
for those Fortran programmers who want to learn how to create a documentation
within the Fortran source code and then generate an appealing online-documentation
by using doxygen.
Illus.: qtCircles' Online-Help
Contents
qtCircles consists of a static library (.lib) and some pre-compiled
MODULEs (.mod files). The functions and their usage are documented in
the Online-Help
(runs in a bowser), and demonstrated by two sample programs: T_Circles.f90
and T_FitCircle.f90 are provided. They show the usage of all qtCircles
functions.
For those compiler systems being explicitely supported, IDE projects are
provided that contain both the sample Fortran programs and settings such
that the necessary files for creating an .exe are found. This really simplifies
the startup. After having unpacked qtCircles.zip (see below), you only
have to load the project file into your IDE, press "Build" and
the .exe will be created.
qtCircles can be purchased together with the qtCircles Fortran95 source
code. This enables you to compile it on other OS and with other compilers,
since qtCircles functions are contained in just one Fortran 95 MODULE.
And as said before, the Fortran source code also contains the whole documentation
as you find it in the online-help.
Compilers Supported
At present the following qtCircles bindings are available
- Intel Visual Fortran (Win32 & Win64) v11 and higher
- Silverfrost FTN95 (Win32) v7 and higher
These bindings may be usable with other compatible compilers
as well. If you want to use qtCircles with a compiler not being supported
yet, let us know. If there is sufficient demand, we create a binding
for that compiler. Or you acquire the Fortran 95 source code of qtConsole
and create the binding yourself.
Download
You can download an evaluation copy here which has a few functional limitations
(1) (download size: 1.2 MB):
qtCircles.zip
The password for unzipping is available on request.
(1) The evaluation copy allows the usage of all functions until the end of the year. When starting a program that calls qtCircles' functions a message box pops up at the beginning which displays a message accordingly. On purchase of a qtCircles Licence you will receive a licence file, which activates the "full version", which can be used without limitation (no message box, no time limit).
Instructions for Installation and First Usage
- Create a directory on your PC (e.g. C:\qtCircles)
- Copy the file you have downloaded into this directory.
- Unzip this file into this directory.
- Then you are ready to load one of the files suitable for your development
system:
For Intel Visual Fortran (in Visual Studio): Examples\IVF\IVF.sln
For FTN95 (in Plato):
Examples\FTN95\T_Circles\T_Circles.ftn95p
Examples\FTN95\T_FitCircle\T_FitCircle.ftn95p
(a double click on the file symbol in Windows File Explorer should start-up your development environment) - After this perform a "Build"
- and run the .exe being created.
If you encounter difficulties, or something is not working properly, send an email, or give us a call: +49(0)30/92900870.
The evaluation copy is converted into a fully functioning version by purchase of a qtConsole licence (no re-installation necessary). A qtCircles licence grants a single named user (the licensee) the usage of the qtCircles software (single user licence) for to create applications (.exe) that he may distribute freely. This means, there are no runtime fees or any other royalties to be paid additionally. The complete licence conditions are to be found in the Online-Help.