
Example: Archimedean spiral More...
Public Member Functions | |
| ArchimedeanSpiral (const Options &opt) | |
| Actual model. | |
| ArchimedeanSpiral (ArchimedeanSpiral &p) | |
| Constructor for cloning p. | |
| virtual Space * | copy (void) |
| Copy during cloning. | |
| virtual FloatVar | cost (void) const |
| Cost function. | |
| virtual void | print (std::ostream &os) const |
| Print solution coordinates. | |
| Public Member Functions inherited from Gecode::Driver::ScriptBase< Driver::ExtractStepOption< FloatMaximizeSpace > > | |
| ScriptBase (const Options &opt) | |
| Constructor. | |
| ScriptBase (ScriptBase &e) | |
| Constructor used for cloning. | |
| virtual void | compare (const Space &home, std::ostream &os) const |
| Compare with s. | |
| Public Member Functions inherited from Gecode::Driver::ExtractStepOption< BaseSpace > | |
| ExtractStepOption (const Options &opt) | |
| Constructor that extracts the step value. | |
| ExtractStepOption (BaseSpace &e) | |
| Constructor used for cloning. | |
Protected Attributes | |
| FloatVarArray | f |
| The numbers. | |
Related Symbols | |
(Note that these are not member symbols.) | |
| int | main (int argc, char *argv[]) |
| Main-function. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from Gecode::Driver::ScriptBase< Driver::ExtractStepOption< FloatMaximizeSpace > > | |
| static std::ostream & | select_ostream (const char *sn, std::ofstream &ofs) |
| Choose output stream according to sn. | |
| static void | run (const Options &opt, Script *s=nullptr) |
Example: Archimedean spiral
The Archimedean Spiral is a spiral where all points corresponding to the locations over time of a point moving away from a fixed point with a constant speed along a line which rotates with constant angular velocity. It is defined by the polar equation:
\[ r = a+b\theta \]
To get cartesian coordinates, it can be solved for \(x\) and \(y\) in terms of \(r\) and \(\theta\). By setting \(a=1\) and \(b=1\), it yields to the equation:
\[ r = \theta \]
with
\[ x=r\operatorname{cos}(\theta), \quad y=r\operatorname{sin}(\theta) \]
The tuple \((r,\theta)\) is related to the position for \(x\) and \(y\) on the curve. \(r\) and \(\theta\) are positive numbers.
To get reasonable interval starting * sizes, \(x\) and \(y\) are restricted to \([-20;20]\).
Definition at line 67 of file archimedean-spiral.cpp.
|
inline |
Actual model.
Definition at line 73 of file archimedean-spiral.cpp.
|
inline |
Constructor for cloning p.
Definition at line 91 of file archimedean-spiral.cpp.
|
inlinevirtual |
Copy during cloning.
Definition at line 96 of file archimedean-spiral.cpp.
|
inlinevirtual |
Cost function.
Definition at line 100 of file archimedean-spiral.cpp.
|
inlinevirtual |
Print solution coordinates.
Reimplemented from Gecode::Driver::ScriptBase< Driver::ExtractStepOption< FloatMaximizeSpace > >.
Definition at line 104 of file archimedean-spiral.cpp.
|
Main-function.
Definition at line 114 of file archimedean-spiral.cpp.
|
protected |
The numbers.
Definition at line 70 of file archimedean-spiral.cpp.