|
| Tangent til bezierkurve Fra : Rune Zedeler |
Dato : 27-02-02 17:11 |
|
En n'te ordens bezierkurve har parameterfremstillingen
n i n-i
p(t) = Sum binomial(n,i) * p * t * (1-t)
i=0 i
hvor p_i er det i'te kontrolpunkt (kurven starter i p_0 og slutter i
p_n).
Fint nok.
Hvis nu jeg gerne vil finde tangentens hældning, skal jeg differentiere
dette.
Dette får jeg med mine begrænsede matematiske evner til
n-1 n-1
p'(t) = -p *n*(1-t) + p *n*t
0 n
n-1 i-1 n-i i n-i-1
+ Sum binomial(n,i) * p * (i*t *(1-t) - t *(1-i)*(1-t) )
i=1 i
Problemet er, at jeg er nødt til at tage specielt hensyn til i=0 og i=n
(den øverste linie).
Kan jeg ikke gøre noget smart for at gøre dette udtryk pænere? (Ud over
at sætte n uden for en parentes i de to første led)
-Rune
| |
Jesper Harder (27-02-2002)
| Kommentar Fra : Jesper Harder |
Dato : 27-02-02 19:20 |
|
Rune Zedeler <rz@daimi.au.dk> writes:
> En n'te ordens bezierkurve har parameterfremstillingen
>
> n i n-i
> p(t) = Sum binomial(n,i) * p * t * (1-t)
> i=0 i
>
> n-1 n-1
> p'(t) = -p *n*(1-t) + p *n*t
> 0 n
>
> n-1 i-1 n-i i n-i-1
> + Sum binomial(n,i) * p * (i*t *(1-t) - t *(1-i)*(1-t) )
> i=1 i
>
> Problemet er, at jeg er nødt til at tage specielt hensyn til i=0 og i=n
> (den øverste linie).
Hmm, hvorfor det? Så vidt jeg lige kan se får du nøjagtig det samme med:
n i-1 n-i i n-i-1
p'(t) = Sum binomial(n,i) * p * (i*t *(1-t) - t *(1-i)*(1-t) )
i=0 i
Prøv selv at sætte i=0 og i=1 ind.
| |
Rune Zedeler (28-02-2002)
| Kommentar Fra : Rune Zedeler |
Dato : 28-02-02 18:23 |
|
Jesper Harder <harder@myrealbox.com> wrote in message news:<m3pu2q7pne.fsf@defun.localdomain>...
> Hmm, hvorfor det? Så vidt jeg lige kan se får du nøjagtig det samme med:
>
> n i-1 n-i i n-i-1
> p'(t) = Sum binomial(n,i) * p * (i*t *(1-t) - t *(1-i)*(1-t) )
> i=0 i
>
> Prøv selv at sætte i=0 og i=1 ind.
Nej, for i=t=0 skal man f.eks. evaluere 0*0^(-1), hvilket afaik er
rimeligt udefineret. - Java kan i hvert fald ikke lide det (giver
not-a-number).
-Rune
| |
Jesper Harder (01-03-2002)
| Kommentar Fra : Jesper Harder |
Dato : 01-03-02 21:14 |
|
rz@daimi.au.dk (Rune Zedeler) writes:
> Jesper Harder <harder@myrealbox.com> wrote:
>
>> Hmm, hvorfor det? Så vidt jeg lige kan se får du nøjagtig det samme med:
>>
>> n i-1 n-i i n-i-1
>> p'(t) = Sum binomial(n,i) * p * (i*t *(1-t) - t *(1-i)*(1-t) )
>> i=0 i
>>
>> Prøv selv at sætte i=0 og i=1 ind.
>
> Nej, for i=t=0 skal man f.eks. evaluere 0*0^(-1), hvilket afaik er
> rimeligt udefineret. - Java kan i hvert fald ikke lide det (giver
> not-a-number).
Matematisk er det helt i orden at skrive summen på den måde. Hvordan du
bedst evaluerer det numerisk er et andet spørgsmål.
| |
Rune Zedeler (02-03-2002)
| Kommentar Fra : Rune Zedeler |
Dato : 02-03-02 02:46 |
|
Jesper Harder wrote:
> Matematisk er det helt i orden at skrive summen på den måde. Hvordan du
> bedst evaluerer det numerisk er et andet spørgsmål.
Du mener, at 0*0^(-1) er i orden matematisk...?
Hvad giver det da?
-Rune
| |
Jesper Harder (02-03-2002)
| Kommentar Fra : Jesper Harder |
Dato : 02-03-02 11:09 |
|
Rune Zedeler <rz@daimi.au.dk> writes:
> Jesper Harder wrote:
>
>> Matematisk er det helt i orden at skrive summen på den måde. Hvordan du
>> bedst evaluerer det numerisk er et andet spørgsmål.
>
> Du mener, at 0*0^(-1) er i orden matematisk...?
Nej. Men når man beregner et differentiale skriver man summen ud først,
og sætter værdien ind bagefter. Så får du ikke det problem. Det er
udelukkende et programmeringsproblem, at du i dit program gør det i en
anden rækkefølge.
| |
|
|