bonjour,
Et les mathématiques dans tout cela ?
petit gif qui illustre des fonctions génériques F(x ) permettant de retrouver le nombre "e" (base des log Népériens) :
trace bleu :
F(x) = (1+1/x)^x qui tend vers "e" par valeur inférieure quand x tend vers l'infini.
nota : x appartient à l'ensemble des entiers naturels.
trace rouge :
F(x) = ((1+1/x) / (1-1/x))^(x/2) qui tend vers "e" par valeur supérieure quand x tend vers l'infini.
Trace verte :
perfectionnement de la deuxième avec apparition de la sous fonction f'(x) en lieu et place de x :
F(x) = ((1+1/2*f'(x)) / (1-1/2*f'(x))))^(f'(x))....
Cette 'best fonction' tend vers "e" quand x tend vers l'infini avec une rapidité dépendant de f'(x).et qui peut être étonnante quand f'(x) est du style f'(x) = (x)^x...ou mieux ((x)^x)^x....ou encore mieux ((((x)^x)^x))^x par exemple avec f'(x) = (x)^x une précision à la neuvième décimale de "e" est atteinte pour x= 7 ! et on peut faire bien plus rapide en jouant avec f'(x)...pour peu que l'on possède un ordinateur performant !
la best fonction qui résume "e" par le calcul affiche son "extension cinématique" dans les 3 dimensions" (x, y et f'(x))
BIBLIOGRAPHIE :
avec f'(x) = x^x la 'best fonction' donne 2,7182818282595900 au rang x = 7
nb « e » par wikipédia :
http://fr.wikipedia.org/wiki/E_(nombre)
il est dit :
« l'expression décimale commence par 2,718 281 828 459 045 235 360 287 4… »
NOTA : la fonction "trace bleu" du gif est mentionnée comme étant connue depuis longtemps (Bernouilli ?)…
Mais les "trace rouge" et "trace verte" avec leur tendance beaucoup plus rapide par valeur supérieure ne semblent pas l’être.
Avis aux amateurs !
les mathématiques ? c'est super beau...et ça développe l'esprit.
Autres gifs réalisés dernièrement :
ils concernent la cinématique générique du TRILO :
A partir du triangle de notre ami Franz Reuleaux :
Mais la rotation n'est pas dans le bon sens :
Amélioriation :
avec le code visual basic permettant de pixeliser une feuille Excel normale (avec attribution d'un fond jaune) :
......
Sub formatpixel()
Application.ScreenUpdating = False
Cells.Select
Selection.RowHeight = 2
Selection.ColumnWidth = 0.2
Selection.Interior.ColorIndex = 6
Range("x25").Select
End Sub
.......
Et le code permettant de génerer les différentes silhouettes paramètres de la famille TRILOBIQUE :
......
Sub varitrilob()
Application.DisplayFullScreen = True
Application.OnKey _
Key:="{F1}", procedure:="varitrilob"
Application.OnKey _
Key:="{F2}", procedure:="formatpixel"
Application.Run "pixelmacro21.xls!formatpixel"
For nbfois = 1 To 4
n = nbfois
'valeur de la séquence en °
seq = 30
'
K = 0.0043633
'cal est le paramètre de décalage angulaire de positionnement du segment d'aile
'du piston annulaire tri lobique selon l'ampleur du noyau
'environ 33 de cal par trancche de 0,25 de coef
'
'grosse basse
If n = 4 Then
col = 39
Range("a1").Offset(290, 160).Select
coef = 0.25
cal = -41
End If
'bosse
If n = 3 Then
col = 4
Range("a1").Offset(200, 50).Select
coef = 0.5
cal = -8
End If
'normal
If n = 2 Then
col = 3
Range("a1").Offset(140, 160).Select
coef = 1
cal = 58
End If
'creux
If n = 1 Then
col = 8
Range("a1").Offset(60, 35).Select
coef = 1.25
cal = 91
End If
'rayon de base théorique
rbt = 60 / coef
'
PRG = rbt * 9 / 10 'PR : distance Générique entre les centres de rotation
R = Fix(PRG * coef) 'R : rayon de la chambre trilobique
RG = PRG * coef 'Rg : rayon générique de la chambre trilobique
PR = Fix(RG * coef) 'PR : distance entre les centres de rotation
rn = Fix(PRG * coef * 0.98 ) 'rn =rayon extérieur pîston ftri lobique
ep = Fix(PRG * coef * 0.98 * 0.25) 'ep : épaisseur du noyau
rb = Fix((RG - PRG) * 1.04 / Cos(K * cal / 5)) 'rb : rayon des 2 bosses latérales
'
ActiveWorkbook.Names.Add Name:="dep1", RefersToR1C1:=ActiveCell
ActiveWorkbook.Names.Add Name:="dep2", RefersToR1C1:=Range("dep1").Offset(0, PR)
ActiveWorkbook.Names.Add Name:="dep3", RefersToR1C1:=Range("dep1").Offset(-Fix(PR * Sin(240 * K)), Fix(PR * Cos(240 * K)))
Range("dep1").Interior.ColorIndex = 1
Range("dep2").Interior.ColorIndex = 1
'
If nbfois = 1 Then
'traçage lobe
Range("dep1").Select
For i = 900 + cal To 1150 + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 60 - cal To 300 - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
Range("dep2").Select
For i = 420 + cal To 670 + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 1020 - cal To 1260 - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
Range("dep3").Select
For i = 1380 + cal To 1630 + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 540 - cal To 780 - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
'End If
Application.ScreenUpdating = True
'End If
'premier détraçage en blanc
Application.ScreenUpdating = False
Range("dep1").Select
For i = 900 + cal To 1150 + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 60 - cal To 300 - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
Range("dep2").Select
For i = 420 + cal To 670 + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 1020 - cal To 1260 - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
Range("dep3").Select
For i = 1380 + cal To 1630 + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 540 - cal To 780 - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
End If
Application.ScreenUpdating = False
'rotation de 60° autour du centre dep 1
For dec = 0 To 240 Step seq
'traçage lobe en noir hexa-arc en vert
Application.ScreenUpdating = False
ActiveWorkbook.Names.Add Name:="dep2", RefersToR1C1:=Range("dep1").Offset(Fix(PR * Sin(dec * K)), Fix(PR * Cos(dec * K)))
ActiveWorkbook.Names.Add Name:="dep3", RefersToR1C1:=Range("dep1").Offset(-Fix(PR * Sin((240 - dec) * K)), Fix(PR * Cos((240 - dec) * K)))
Range("dep1").Select
'lobe
For i = 900 + dec + cal To 1150 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 60 + dec - cal To 300 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
'
'lobe
Range("dep2").Select
For i = 420 + dec + cal To 670 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 1020 + dec - cal To 1260 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
'lobe
Range("dep3").Select
For i = 1380 + dec + cal To 1630 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 540 + dec - cal To 780 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
Application.ScreenUpdating = True
'détraçage en blanc
Application.ScreenUpdating = False
Range("dep1").Select
'lobe
For i = 900 + dec + cal To 1150 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 60 + dec - cal To 300 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
'lobe
Range("dep2").Select
For i = 420 + dec + cal To 670 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 1020 + dec - cal To 1260 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
'lobe
Range("dep3").Select
For i = 1380 + dec + cal To 1630 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 540 + dec - cal To 780 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
Application.ScreenUpdating = True
Next
'rotation de 60° autour du centre initial dep 2 (rebaptisé dep1)
ActiveWorkbook.Names.Add Name:="mémo", RefersToR1C1:=Range("dep3")
ActiveWorkbook.Names.Add Name:="dep1", RefersToR1C1:=Range("mémo")
ActiveWorkbook.Names.Add Name:="dep2", RefersToR1C1:=Range("dep1")
ActiveWorkbook.Names.Add Name:="dep3", RefersToR1C1:=Range("dep2")
For dec = (720 + seq) To 960 Step seq
'traçage lobe en noir et hexa-arc en vert
Application.ScreenUpdating = False
ActiveWorkbook.Names.Add Name:="dep2", RefersToR1C1:=Range("dep1").Offset(Fix(PR * Sin(dec * K)), Fix(PR * Cos(dec * K)))
ActiveWorkbook.Names.Add Name:="dep3", RefersToR1C1:=Range("dep1").Offset(-Fix(PR * Sin((240 - dec) * K)), Fix(PR * Cos((240 - dec) * K)))
Range("dep1").Select
'lobe
For i = 900 + dec + cal To 1150 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 60 + dec - cal To 300 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
'lobe
Range("dep2").Select
For i = 420 + dec + cal To 670 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 1020 + dec - cal To 1260 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
'lobe
Range("dep3").Select
For i = 1380 + dec + cal To 1630 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
For i = 540 + dec - cal To 780 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = 1
Next
Application.ScreenUpdating = True
'détraçage en blanc
Application.ScreenUpdating = False
If dec < 960 Then
Range("dep1").Select
'lobe
For i = 900 + dec + cal To 1150 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 60 + dec - cal To 300 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
'lobe
Range("dep2").Select
For i = 420 + dec + cal To 670 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 1020 + dec - cal To 1260 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
'lobe
Range("dep3").Select
For i = 1380 + dec + cal To 1630 + dec + cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
For i = 540 + dec - cal To 780 + dec - cal
x = Fix(Sin(K * i) * R)
Y = Fix(Cos(K * i) * R)
ActiveCell.Offset(x, Y).Interior.ColorIndex = col
Next
End If
Application.ScreenUpdating = True
Next
Next
'Next
Range("x25").Select
Range("dep1").Interior.ColorIndex = 1
Range("dep2").Interior.ColorIndex = 1
End Sub
.........
Ce code permet d'obtenir le traçage automatique et dynamique de ces 4 paramètrages différents du TRILOBIQUE (et en partant d'une feuille EXCEL tout à fait normale) :
A+
Pascal