Alexey Ivanov

## 1160 Reputation

12 years, 53 days

## But...

It seems that Draghilev's method works more "neatly". This can be seen in the example of a line segment with ends
[0.5, 1, 1.5], [-1, 0, 1]. If we weaken the attention to the solution based on Gröbner bases and do not additionally divide the segment into parts, then formally possible, but in reality hardly admissible discreteness may arise:
This, as we can see, does not happen when using Draghilev's method:

## Stewart platform...

@Ronan
An example of exactly the same movement as in the first example  PLAT 1. To do this, replace the third part of the program with this text:
STEWART_PLATFORM.mw
Platform design options are endless.

## It is a way of solving the inverse probl...

@Ronan  Thank you.
If “dynamic systems” means autonomous ODE systems, then Draghilev’s method is based on them. In turn, this method can be used to find a set of bifurcations of autonomous systems, both discrete and continuous. This is where my knowledge on this issue ends.
As for the Stewart platform, in the 3rd part of the program, you can easily remove my 3 rotary-inclined racks of variable length and replace them with your 6 variable-length racks.  My racks are controlled by rotation, tilt and length, while your racks will be adjustable in length. The number of Cij points in the text (where i is the number of the point, and j is its coordinate) you need to increase from 3 to 6 and connect to the platform (solid) in any way convenient for you. Then you will automatically receive a solution to the inverse kinematic problem for your new device, because at any time you will know the lengths of all the racks and, of course, the coordinates of all the necessary points. At the same time, we are not talking about possible emergency situations such as: crossing of racks, exceeding the permissible length, etc., however, all this can be controlled and, if necessary, make changes to its design.
As a matter of fact, the third part of the program is designed to use preliminary calculations of the first two parts and to save time when obtaining a solution to the inverse kinematic problem for any models that can reproduce the given trajectory of the platform movement.

## The same words...

@tomleslie
My help also says: "If T is a triangle, and A a vertex of T, FindAngle (A, T) returns the internal angle of T at A".

## Thanks...

@vv
Yes, thanks, checked. I used to think that VectorAngle calculates the angle in a similar way, that is, no more than Pi / 2.

## There were mistakes in the comments...

Fixed comments in the text of the program,

## Not quite......

@Kitonum
Yuri Nikolaevich,  you should to agree that the question is not quite that.
And you saw an example of my solution on one of the forums so that you can compare with your example.

It's about the simplicity of the general approach, as is the case with inellipse in this topic.

There is a similar program (as at the beginning of the post), but for obtaining the equation of an ellipse circumscribed about a triangle.
Is there a way to parametrically define the circumellipse too, so as not to fiddle with this program further?

## It works in Maple17 too...

@vv
And it works for me too, but when the parameters are  0 < s, t < 1
For example, parameters = [s = 0.01 .. 0.99, t = 0.01 .. 0.99]

## Something has changed, but ......

@mmcdara
Thank you for your assistance. The error message ceased to appear, the first frame and sliders appeared. But when I move the sliders, the triangle and ellipse images disappear and no longer appear. That is, it still does not work.
Nothing, the main thing is not in this, but in the fact that the essence of solving the task by means of parameterization is clear.

## No problem understanding now...

@vv
Thank. Until now, I did not know about the existence of such dependencies.
" Probably in Maple 17 this will work:"
No, for some reason, it doesn't work. But this is no longer relevant, because it is clear what should be.
Thank you again.
(You will laugh when you find out how much effort I put into this program, especially with my Maple "proficiency" level.)

## I have problems understanding...

@vv
I feel that you, as always, are on top. But unfortunately your program doesn't work on my version.
Is it not difficult for you to at least briefly explain your text? Thank you.

## Thank you...

@vv
Yes, there are several ways to solve this problem. The fact is that in some similar examples there is only a finite number of variants of such triangles, and it seemed to me that the easiest way to decide (for fun) is to use the optimization package.
For example, x^4+ y^4 + z^4 - 1 = 0, the maximum area of the triangles is approximately 2.08.

## The answer from myself to myself...

It seems  there is a way to exit the program when a check for the existence condition of the tetrahedron is "NO". We put the program text in a pseudo-loop where the break statement works. If the check passes, then the  print ("GO") is executed; if not, the print ("GO") is not executed. A simple check by point F: if its third coordinate is other than 0, then the program is executed, for example, point (F, 1, 1, 0.000001), if its third coordinate is 0, then the program is not executed.

```restart: with(geom3d):
for j to 1 do
point(A, 0, 0, 0), point(B, 2, 2, 0), point(C, 0, 2, 0), point(F, 1, 1, 0):
gtetrahedron(T1, [A, B, C, F]):
i := nops(op(0, detail(T1))); if i = 1 then print("Ok, gtetrahedron") else    print("No gtetrahedron, NO"); break end if:
print("GO");
end do:
```

## Very nice...

@tomleslie  Thanks a lot. I didn’t want to extend the text of the check, especially since I couldn’t do it as gracefully as you. I have very poor Maple proficiency. I was more interested in understanding how to stop further program execution in the case of `no_tetrahedron_possible`

 3 4 5 6 7 8 9 Last Page 5 of 24
﻿