math


Find any point on arc given center, start point, end point, total angle, normal, and radius


I have an 3D arc with coordinates such as:
start = (-3,6,12)
end = (-13,11,12)
center = (-9,6,14)
norm = (0.3204,0.6304,0.7071)
radius = 7
Along with angle information:
start angle = 216
total angle = 108
end angle = 324
Using the given information, I want to interpolate the arc at a specified distance. To do this, I perform the same operation in a loop and increment or decremented the angle depending on the direction I choose (start to end or vice-versa).
I figured out how to do so in 2D with the algorithm:
X = r * cosine(angle)
Y = r * sine(angle)
X = Cx + (r * cosine(angle))
Y = Cy + (r * sine(angle))
But once I add the Z axis it gets very confusing. I have been looking at multiple methods that use operations such as the cross product but these make me even more confused.
How should I proceed with this?
If center is center of circle, than you have almost all information needed for SLERP - spherical linear interpolation
p0 = start - circlecenter
p1 = end - circlecenter
p(t) = p0 * Sin(W*(1-t)) / Sin(W) + p1 * Sin(W*t) / Sin(W)
point(t) = circlecenter + p(t)
where p0 and p1 are starting and ending radius-vectors, W is total angle, t is
parameter in range 0..1 (so W*t lies in range 0..total angle)
If your center is middle of arc, you can find circle center:
chord = end - start
uchord = chord.normalize //(unit vector)
perp = VectorProduct(normal, uchord) //unit vector in circle plane
circlecenter = middle + perp * radius

Related Links

Moving an object at a constant speed
Find Increment # of X
Getting the shortest angle path
How can I find the length of the third side of any triangle?
sage math: how to combine or expand exponents in a symbolic expression?
Modulus in Casio fx991es
how to control the speed of animation, using a Bezier curve?
why has erlang redefined something as basic as a remainder?
Maths for university Software Development degree [closed]
Counting to a million in Python - Theory
Theta time complexity for loop
Product of range in Prolog
What is the difference between permutations and derangements?
Position(t) on cubic bezier curve
what is the right answer in infix to postfix convertion
Trying to find(guess) game formula

Categories

HOME
typescript
graph
performance
bootstrap-4
angular2-forms
azure-search
android-sqlite
quickblox
prometheus
jqgrid
xcode8
textbox
encog
oracle-adf
predictionio
jena
drag
dbus
h2o
calayer
overloading
doorkeeper
command-line-arguments
factory-girl
jmespath
html-email
cadvisor
core-location
fat-free-framework
point-cloud-library
memorystream
plm
pmd
lync
doctrine-odm
codeskulptor
gridstack
jdom-2
xaf
nio
confirm
btle
logicblox
httpexception
nscalendar
stroke
okular
mashery
jce
email-notifications
configuration-profile
django-errors
ipopt
cglib
ckcontainer
vlc-android
rras
duration
selenium2library
pypyodbc
aplpy
hl7-v2
tag-helpers
relaxng
ane
rdotnet
treegrid
translate3d
base-conversion
kue
opensc
ratingbar
cpp-netlib
spread-toolkit
xml.modify
srp
pdf-scraping
modx-evolution
gora
programmers-notepad
nsimageview
globbing
google-authorship
impdp
tempo
memento
squirrelmail
adaboost
gemstone
datatemplate
replay
machine.config
wiki-markup
unitils
wmd

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App