Group Abstract Group Abstract

Message Boards Message Boards

1
|
7.7K Views
|
13 Replies
|
1 Total Like
View groups...
Share
Share this post:

PlanarAngle issues?

Posted 5 years ago

I am observing a very strange behavior from PlanarAngle:

  1. The result of PlanarAngle depends on the previous history.
  2. PlanerAngle assumes for the first few calls that its arguments are complex. After that, it doesn't.

Fortunately, however, all results are correct.

Attachments:
POSTED BY: Werner Geiger
13 Replies
Posted 5 years ago

Your findings are touched upon in the PlanarAngle documentation

enter image description here

POSTED BY: Hans Milton
Posted 5 years ago

Hans, you're right. I didn't really realize what "generic" means.

However, that makes the symbolic result of PlanarAngle pretty meaningless.

POSTED BY: Werner Geiger
Posted 5 years ago

Meanwhile I found out that the symbolic result of PlanarAngle is wrong. The correct symbolic result of PlanarAngle would have to be a Piecewise expression that depends on the relative positions of the points p, q1, q2.

See the following and attached Notebook "210717b PlanarAngle Issues 2.nb".

Attachments:
POSTED BY: Werner Geiger
Posted 5 years ago

A somewhat rough workaround could be to use VectorAngle instead:

myPlanarAngle[p_, q1_, q2_] := VectorAngle[q1 - p, q2 - p]

Table[{i, myPlanarAngle[{0, 1}, {-Sin[\[Phi]], Cos[\[Phi]]}, {Cos[\[Phi]], Sin[\[Phi]]}]}, {i, 50}]
POSTED BY: Hans Milton
Posted 5 years ago

@Hans: Yes, VectorAngle[u,v] remains stable. But VectorAngle is very different from PlanarAngle since it does not honor the direction of rotation. It gives the smaller of the two angles between u and v. Hence it is useless for calculating rotation angles. You must enhance it with quite complicated case diffentiations according to the relative positions of p, q1, q2. This is why PlanarAngle exists. See:

p = {0, 0}; q1 = {1, 0};
Print[{q2 = #, VectorAngle[q1 - p, q2 - p], 
     PlanarAngle[p -> {q1, q2}, "Counterclockwise"]}] & /@ {{-1, 
    1}, {-1, -1}};

{{-1,1},(3 \[Pi])/4,(3 \[Pi])/4}
{{-1,-1},(3 \[Pi])/4,(5 \[Pi])/4}
POSTED BY: Werner Geiger
POSTED BY: Jason Biggs
Posted 5 years ago
POSTED BY: Werner Geiger
Posted 5 years ago
POSTED BY: Werner Geiger
Posted 5 years ago
POSTED BY: Hans Milton
Posted 5 years ago

Werner, so far I had only tried the code on Mathematica installed on my computer. The so called Mathematica|Desktop. And there are no problems.

But after your recent reply I tried it on the Wolfram Cloud. And I get exactly the same strange results that you have described!

POSTED BY: Hans Milton
Posted 5 years ago

I did not try that within the cloud but on the desktop only. I use a Wolfram|One license.

POSTED BY: Werner Geiger
Posted 5 years ago

I am also using Windows 10 and Mathematica 12.3.1. And I can not reproduce the issue. No matter how many times PlanarAngle[{0,1} -> {{-Sin ... is evaluated the output always contains Conjugate

Table[PlanarAngle[{0, 1} -> {{-Sin[\[Phi]], Cos[\[Phi]]}, {Cos[\[Phi]], Sin[\[Phi]]}}], 50]
POSTED BY: Hans Milton
Posted 5 years ago
POSTED BY: Werner Geiger
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard