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

number of bytes available given address bus width and various information
Algorithm for finding an equidistributed solution to a linear congruence system
a simple probability code in matlab
conditional Product mathematica
Splitting a bezier curve
Accurately measuring relative distance between a set of fiducials (Augmented reality application)
pure python code for multivariate linear regression
How do I generate a random number close to zero?
How to use Maxima's diff in function definition?
Controlling measure zero sets of solutions with Manipulate. A case study
Matching virtual camera to real camera
Cricket physics, a basic simulation
half-carry/half-borrow flag in DAA instruction
How to animate a swinging rope?
How to randomize points on a sphere surface evenly?
Detect rotated-rectangle intersection

Categories

HOME
lsf
ffmpeg
redirect
elf
tags
compiler-errors
appium-ios
bootstrap-selectpicker
wxpython
stripe-payments
active-directory
spi
oracle-adf
android-bluetooth
plotly
zipfile
boxfuse
pymc3
command-line-arguments
scale
plots.jl
image-gallery
next
pywin32
smartcard
ormlite-servicestack
dsc
desktop-app-converter
iar
memorystream
webfocus
svn2git
scom
react-redux-form
imageshack
google-domain-api
bezier
linechart
azure-management-api
using
distributed-lock
opal
azure-cdn
libev
ietf-netconf
breach-attack
vs-2015-preview
sizing
kombu
mysql-notifier
error-correction
nsd
sound-synthesis
webpagetest
angularjs-filter
js-of-ocaml
sqlj
multer
oracle-bi
thinktecture-ident-server
python-dragonfly
ironmq
ubiquity
json4s
linegraph
boost-coroutine
emberfire
gcovr
setattribute
misra
razor-2
office-2010
django-postgresql
cpp-netlib
deepzoom
jquery-mobile-popup
xidel
ioerror
glulookat
nsmanagedobjectmodel
loadlibrary
flexpaper
source-highlighting
rc-shell
hpple
jscience
stumbleupon
android-assets
process.start
boost-gil
nstreecontroller
syncml
regexbuddy
keylogger
arraycopy
plumtree

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