Frankiezafe (Talk | contribs) (Created page with "La question traitée ici concerne le mapping de données dans un espace cyclique. Le traitement d'angle est le premier qui me vient en tête. == base == |--------*-------...") |
Frankiezafe (Talk | contribs) |
||
Line 1: | Line 1: | ||
La question traitée ici concerne le mapping de données dans un espace cyclique. Le traitement d'angle est le premier qui me vient en tête. | La question traitée ici concerne le mapping de données dans un espace cyclique. Le traitement d'angle est le premier qui me vient en tête. | ||
+ | |||
+ | = remapping angles = | ||
== base == | == base == | ||
Line 7: | Line 9: | ||
0 a b c d 2PI | 0 a b c d 2PI | ||
− | + | l´idée est d´écarter 2 valeurs consécutives, b et c par ex, et de rediffuser les 2 autres, a et d, de manière proportionnelle | |
pour ce faire > calcul du point médian x | pour ce faire > calcul du point médian x | ||
Line 20: | Line 22: | ||
|--------*--------<--------*-----!-----*-------->------*--------| | |--------*--------<--------*-----!-----*-------->------*--------| | ||
− | 0 a | + | 0 a b´ b x c c´ d 2PI |
− | distance | + | distance b´x = (c´-b´) |
x = b + bx/2 | x = b + bx/2 | ||
− | on a donc perdu ( | + | on a donc perdu (b´x - bx) radians |
|----*---------|----*---------|----*---------| | |----*---------|----*---------|----*---------| | ||
− | -2PI | + | -2PI a´ 0 a 2PI a´´ 4PI |
− | ce | + | ce qu´il ne faut pas oublier: l´espace est cyclique > a´ ~ a ~ a´´ |
on peut descendre en négatif et passer 2PI sans que ça pose de réel problème | on peut descendre en négatif et passer 2PI sans que ça pose de réel problème | ||
|---!--------*-----------*-----*----------*-----|---!--------* | |---!--------*-----------*-----*----------*-----|---!--------* | ||
− | 0 | + | 0 x´ a b c d 2PI x a´ |
3 11 22 27 37 42 45 53 | 3 11 22 27 37 42 45 53 | ||
− | + | l´angle entre d et a est à plusieurs positions simultanément | |
pour son calcul: ( d + a ) / 2 - ( 37 + 11 ) -> 48!!!!, divisé par 2, on arrive à 24, donc pas du tout où il faut! | pour son calcul: ( d + a ) / 2 - ( 37 + 11 ) -> 48!!!!, divisé par 2, on arrive à 24, donc pas du tout où il faut! | ||
il faut ajouter 42 à a => 53, et là: (37+57)/2, 90/2 => 45 paf! | il faut ajouter 42 à a => 53, et là: (37+57)/2, 90/2 => 45 paf! | ||
Line 55: | Line 57: | ||
a | c b | d | a | c b | d | ||
11 | 19 22 | 37 | 11 | 19 22 | 37 | ||
− | 0 | | + | 0 |´ | | | |
| \ | | | | \ | | | ||
− | + | a´ c´ b´ d´ | |
16 20.9 22.8 32 | 16 20.9 22.8 32 | ||
− | ? | + | ? b´ |
distance_b | distance_b | ||
Line 70: | Line 72: | ||
distance_b = b - a => 11 | distance_b = b - a => 11 | ||
distance_init = d - a => 26 | distance_init = d - a => 26 | ||
− | distance_new = | + | distance_new = d´ - a´ => 16 |
percent_b = distance_b / distance_init = > 0.423076923 | percent_b = distance_b / distance_init = > 0.423076923 | ||
− | out_b = | + | out_b = a´ + percent_b * distance_new (6.769230769) => 22.769230769 |
return out_b | return out_b | ||
− | pour | + | pour c´ |
si c < d: | si c < d: | ||
distance_c = b - a => 8 | distance_c = b - a => 8 | ||
distance_init = d - a => 26 | distance_init = d - a => 26 | ||
− | distance_new = | + | distance_new = d´ - a´ => 16 |
percent_b = distance_c / distance_init = > 0.307692308 | percent_b = distance_c / distance_init = > 0.307692308 | ||
− | out_b = | + | out_b = a´ + percent_b * distance_new (4.923076923) => 20.923076923 |
return out_b | return out_b | ||
le process semble ok pour les angles compris entre a et d | le process semble ok pour les angles compris entre a et d | ||
− | dans la méthode, d est le point | + | dans la méthode, d est le point d´entrée |
La question traitée ici concerne le mapping de données dans un espace cyclique. Le traitement d'angle est le premier qui me vient en tête.
|--------*-----------------*-----------*--------------*--------| 0 a b c d 2PI
l´idée est d´écarter 2 valeurs consécutives, b et c par ex, et de rediffuser les 2 autres, a et d, de manière proportionnelle
pour ce faire > calcul du point médian x
|--------*-----------------*-----!-----*--------------*--------| 0 a b x c d 2PI
distance bx = (c-b) x = b + bx/2
le remap spécifie les nouvelles valeurs de b et de c
|--------*--------<--------*-----!-----*-------->------*--------| 0 a b´ b x c c´ d 2PI
distance b´x = (c´-b´) x = b + bx/2
on a donc perdu (b´x - bx) radians
|----*---------|----*---------|----*---------|
-2PI a´ 0 a 2PI a´´ 4PI
ce qu´il ne faut pas oublier: l´espace est cyclique > a´ ~ a ~ a´´
on peut descendre en négatif et passer 2PI sans que ça pose de réel problème
|---!--------*-----------*-----*----------*-----|---!--------* 0 x´ a b c d 2PI x a´ 3 11 22 27 37 42 45 53
l´angle entre d et a est à plusieurs positions simultanément pour son calcul: ( d + a ) / 2 - ( 37 + 11 ) -> 48!!!!, divisé par 2, on arrive à 24, donc pas du tout où il faut! il faut ajouter 42 à a => 53, et là: (37+57)/2, 90/2 => 45 paf! si a < d,
a += 2PI
center = (d+a)/2
dans le remap, je demande un recalcul de b dans les bornes d > a vers d-5, a + 5
a, in, out, in_to, out_to b, 11, 37, 16, 32
|-----------*--->--*---*---*----------*---<--*-----| 0 | | | | | | 2PI a | c b | d 11 | 19 22 | 37 0 |´ | | | | \ | | a´ c´ b´ d´ 16 20.9 22.8 32
? b´
distance_b distance_init distance_new percent_b out_b si b < d:
distance_b = b - a => 11 distance_init = d - a => 26 distance_new = d´ - a´ => 16 percent_b = distance_b / distance_init = > 0.423076923 out_b = a´ + percent_b * distance_new (6.769230769) => 22.769230769
return out_b
pour c´ si c < d:
distance_c = b - a => 8 distance_init = d - a => 26 distance_new = d´ - a´ => 16 percent_b = distance_c / distance_init = > 0.307692308 out_b = a´ + percent_b * distance_new (4.923076923) => 20.923076923
return out_b
le process semble ok pour les angles compris entre a et d dans la méthode, d est le point d´entrée
online identity ∋ [ social ∋ [mastodon♥, twitter®, facebook®, diaspora, linkedin®]
∥ repos ∋ [github®, gitlab♥, bitbucket®, sourceforge] ∥ media ∋ [itch.io®, vimeo®, peertube♥, twitch.tv®, tumblr®] ∥ communities ∋ [godotengine♥, openprocessing, stackoverflow, threejs]]