Cette image avec une résolution de 2190x3810 pixels
Ecrit par denis bertin pour Denis-Draw le 12.09.2010.
Permet de démontrer l'utilisation de sinusoïde et de leurs correspondances exactes.
Cette représentation serait déjà dans le Codex Leicester de léonard de Vinci.

procedure TDisque_window.sinus_sur_deux_plans; const k_position_depart_y=10000; k_position_depart_x=5000; k_rayon_spirale=7200; var i:integer; forme_sinusoide:wformes1.tforme_dessin; forme_spirale_develloper:wformes1.tforme_dessin; deux_lignes_sur_les_axes:wformes1.tforme_dessin; trois_ligne_vertical:wformes1.tforme_dessin; un_calque_actif:col_plan.TCalque; position:tpoint; position_spirale:integer; un_point_projecter_sur_le_plan_de_dessous_y:integer; coordonner:tpoint; a_color_une_couleur:tcolorref; begin un_calque_actif:=wmsg.col_dessin.Get_calque_actif; if un_Calque_actif=nil then begin exit; end; forme_sinusoide:=wformes1.tforme_dessin.create(k_position_depart_x,k_position_depart_y); position_spirale:=k_position_depart_y+k_position_depart_y div 2; forme_spirale_develloper:=wformes1.tforme_dessin.create(k_position_depart_x,position_spirale); for i:=0 to 720 do begin if i mod 10= 0 then begin hls_rvb.hls_to_tcolorref(i/720*360,0.5,1,a_color_une_couleur); position.x:=round(cos(i*utile.pisur180)*(k_rayon_spirale-i*10)) div 2; position.y:=i*10; forme_sinusoide.elements.add(font_ob1.lignenode.create(position.x,-position.y)); deux_lignes_sur_les_axes:=wformes1.tforme_dessin.create(k_position_depart_x,k_position_depart_y-position.y); deux_lignes_sur_les_axes.elements.add(font_ob1.lignenode.Create(position.x,0)); deux_lignes_sur_les_axes.calcul; deux_lignes_sur_les_axes.couleur_pinceau:=a_color_une_couleur; deux_lignes_sur_les_axes.brush1.lbColor:=a_color_une_couleur; un_calque_actif.add(deux_lignes_sur_les_axes); trois_ligne_vertical:=wformes1.tforme_dessin.create( k_position_depart_x+position.x,k_position_depart_y-position.y); trois_ligne_vertical.couleur_pinceau:=a_color_une_couleur; trois_ligne_vertical.brush1.lbColor:=a_color_une_couleur; un_point_projecter_sur_le_plan_de_dessous_y:= position_spirale+round(sin(i*utile.pisur180)*position.x-k_position_depart_y+position.y); coordonner.x:=0; coordonner.y:=un_point_projecter_sur_le_plan_de_dessous_y; trois_ligne_vertical.elements.Add( font_ob1.ligneNode.create(coordonner.x,coordonner.y)); forme_spirale_develloper.elements.add( font_ob1.lignenode.Create( coordonner.x+trois_ligne_vertical.x-forme_spirale_develloper.x, coordonner.y+trois_ligne_vertical.y-forme_spirale_develloper.y)); trois_ligne_vertical.calcul; un_calque_actif.add(trois_ligne_vertical); end; end; forme_spirale_develloper.calcul; forme_sinusoide.calcul; un_calque_actif.add(forme_sinusoide); un_calque_actif.add(forme_spirale_develloper); Cherche_le_cadre_surface; invalidaterect(self.hwindow,nil,false); postmessage(self.hwindow,wm_selection_changer,0,0); end; {TDisque_window.sinus_sur_deux_plans}
BeeLog 2010