Anar al contingut

Spline centrípeto de Catmull-Rom

De L'Enciclopèdia, la wikipedia en valencià
Archiu:Catmull-Rom Spline.png
Interpolació en quatre punts donats realisada en el spline de Catmull-Rom

En computació gràfica, el spline centrípeto de Catmull-Rom és una variant del interpolador cúbic de Hermite, formulada originalment per Edwin Catmull i Raphael Rom,[1] que pot calcular-se utilisant un algoritme recursivo propost per Barry i Goldman. És un tipo de spline d'interpolació definit per quatre punts de control 𝐏0,𝐏1,𝐏2,𝐏3 (pels que passa), pero en la curva dibuixada solament de 𝐏1 a 𝐏2.

Definició

[editar | editar còdic]
Archiu:Cubic Catmull-Rom formulation.png
Formulació piramidal de Barry i Goldman
Archiu:Catmull-Rom Parameterized Time.png
Parametrización de nodos per a l'algoritme de Catmull-Rom

Siga 𝐏i=[xiyi]T un punt. Per a un segment de curva 𝐂 definit pels punts 𝐏0,𝐏1,𝐏2,𝐏3 i la seqüència de nodos t0,t1,t2,t3, el spline centrípeto de Catmull-Rom es pot generar per mig de:

𝐂=t2tt2t1𝐁1+tt1t2t1𝐁2

a on

𝐁1=t2tt2t0𝐀1+tt0t2t0𝐀2
𝐁2=t3tt3t1𝐀2+tt1t3t1𝐀3
𝐀1=t1tt1t0𝐏0+tt0t1t0𝐏1
𝐀2=t2tt2t1𝐏1+tt1t2t1𝐏2
𝐀3=t3tt3t2𝐏2+tt2t3t2𝐏3

i

ti+1=[(xi+1xi)2+(yi+1yi)2]α+ti

en el que α va de 0 a 1 per a la parametrización dels nodos, i i=0,1,2,3 en t0=0. Per al spline centrípeto de Catmull-Rom, el valor de α és 0.5. Quan α=0, la curva resultant és el spline uniforme de Catmull-Rom estàndar; i quan α=1, el resultat és el spline cordal de Catmull-Rom.

Archiu:Uniform, Centripetal and Chordal Parameterization for Catmull-Rom Spline.gif
Animació gif per a la parametrización uniforme, centrípeta i cordal del spline de Catmull-Rom, depenent del valor de α

En conectar t=t1 a les equacions del spline 𝐀1,𝐀2,𝐀3,𝐁1,𝐁2, i 𝐂 es mostra que el valor de la curva en t1 és 𝐂=𝐏1. De manera similar, substituir t=t2 en les equacions spline mostra que 𝐂=𝐏2 en t2. Açò és cert independentment del valor de α, ya que l'equació de ti+1 no és necessària per a calcular el valor de 𝐂 en els punts t1 i t2.

Archiu:3D Centripetal Catmull-Rom Spline segment.png
Segment de spline de Catmull-Rom centrípeto en 3D

L'extensió a punts 3D es conseguix simplement considerant 𝐏i=[xiyizi]T respecte a un punt 3D genèric 𝐏i i

ti+1=[(xi+1xi)2+(yi+1yi)2+(zi+1zi)2]α+ti

Ventages

[editar | editar còdic]

El spline centrípeto de Catmull-Rom té vàries propietats matemàtiques desijables en comparació a la formulació original i atres tipos de splines de Catmull-Rom.[2] En primer lloc, no formarà un bucle ni una autointersección dins d'un segment de curva. En segon lloc, mai genera cims dins d'un segment de curva. En tercer lloc, seguix més estrictament els punts de control.[3]

Archiu:Catmull-Rom examples with parameters..png
En esta figura, hi ha una autointersección/bucle en un spline de Catmull-Rom uniforme (vert), mentres que per al spline de Catmull-Rom cordal (roig), la curva no seguix estrictament els punts de control

Vore també

[editar | editar còdic]

Referències

[editar | editar còdic]
  1. «A class of local interpolating splines», Computer Aided Geometric Design, pp. 317–326. doi:10.1016/B978-0-12-079050-0.50020-5. ISBN 978-0-12-079050-0.
  2. Parameterization and applications of Catmull-Rom curves” (1 de juliol 2011). Computer-Aided Design 43 (7): 747–755. doi:10.1016/j.cad.2010.08.008.
  3. Yuksel; Schaefer; Keyser, Cem; Scott; John. «On the Parameterization of Catmull-Rom Curves».


Referències

[editar | editar còdic]