Draw directional arrows without trigonometry #251
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Description of the Change
This removes the reliance on trigonometric functions to draw a directional arrow. Trigonometric functions would generally be more expensive than other operations and introduce tiny inaccuracies in results where otherwise avoidable.
Instead, we can use pure vector math to achieve the same result in a more straightforward way.
The only expensive operation remaining after this change is the Normalize operation, which should still be cheaper than the
Atan2,CosandSincombo used before.The change should give a few extra FPS in case there are many animated arrows on sceen, but I have not measured this with ultra high precision.
The new code here would also benefit from optimizations if WPF's Vector is improved to support AVX. (Which does not seem to be the case at the moment)
This is the small change I mentioned here: #249
🐛 Possible Drawbacks