Deutsch English Français Italiano |
<t68kpd$1rpj$1@cabale.usenet-fr.net> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.nobody.at!weretis.net!feeder8.news.weretis.net!news.trigofacile.com!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen <om+news@miakinen.net> Newsgroups: fr.sci.maths Subject: Re: fonctions Date: Fri, 20 May 2022 19:57:01 +0200 Organization: There's no cabale Lines: 67 Message-ID: <t68kpd$1rpj$1@cabale.usenet-fr.net> References: <62860f9b$0$9158$426a74cc@news.free.fr> <628738dc$0$8505$426a74cc@news.free.fr> <62874fcc$0$22087$426a74cc@news.free.fr> NNTP-Posting-Host: pa-129.182.162.202.frcl.bull.fr Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1653069421 61235 129.182.162.202 (20 May 2022 17:57:01 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Fri, 20 May 2022 17:57:01 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.1 In-Reply-To: <62874fcc$0$22087$426a74cc@news.free.fr> Bytes: 4032 Le 20/05/2022 à 10:22, HB a écrit : > bonjour, > > bon ... je répond à plein de choses ... : > > 1°) Quand je dis "aléatoires" c'est que je veux pouvoir répéter le > processus et obtenir des choses différentes imprévisibles... > > 2°) Pour les curieux ;o) > En fait l'idée m'est venu en voyant ça au MOMA de NY > > https://drive.google.com/file/d/1TmBSwwnHqS70QkNI9PDC8DxMYykcGm1O/view?usp=sharing Une idée d'algorithme, incluant la possibilité de revenir un peu en arrière. 1) Choisir un petit pas d'incrémentation en x (mettons dx = 1/100), un petit pas d'avancement (mettons dl = 1/100), une distance minimum entre les courbes (mettons dm = 5/100), un angle maximum par rapport à l'horizontale (mettons am = 100 degrés pour permettre d'aller en arrière), un changement d'angle maximum quand tout se passe bien (mettons da = 30 degrés). 2) Choisir au hasard N valeurs entre 0+dm et 1-dm, en s'assurant que ces valeurs sont toutes distantes d'au moins dm deux à deux. Choisir aussi un angle entre −am et +am pour chaque valeur. 3) Pour x0 allant de dx à 1 par pas de dx, on va faire avancer chaque courbe jusqu'à ce qu'elle atteigne l'abscisse x0. À chaque nouvel x0 on peut choisir aléatoirement dans quel ordre on va traiter chaque courbe. 3.1) Pour la courbe choisie, on peut faire varier un peu la direction d'avancement dans les limites de ±da pour la variation et de ±am pour la valeur finale. On vérifie que le point d'arrivée (en avançant de dl) reste suffisamment loin des autres courbes (et des points précédents de la même courbe), et aussi des valeurs y=0, y=1 et x=0. On peut être plus malin en prévoyant aussi d'être loin de ce que pourraient être les autres courbes si elles continuaient tout droit et que nous restions dans les limites permises par ±da (en gros voir s'il y a intersection entre une droite et un cercle). 3.2) On stocke dans un tableau la nouvelle position (x, y) pour pouvoir comparer les positions respectives de toutes les courbes. 3.3) Tant qu'on n'a pas atteint le x0 qui est notre objectif à cette étape, on continue avec la même courbe. 3.4) Sécurité : à tout moment, si on ne peut pas empêcher une intersection avec une autre courbe ou les bords de la zone, on ignore la contrainte sur ±da et on choisit un point qui l'évite. 3.5) Lorsque la courbe atteint ou dépasse x0, on passe à une autre courbe. Si c'est plus simple, on peut alors stocker (x0, y) au lieu de (x, y) pour le dernier point de cette courbe. 3.6) Lorsque toutes les courbes ont atteint x0, on incrémente x0 de dx et on recommence. 4) Lorsque toutes les courbes ont atteint x0 = 1, on s'arrête. -- Olivier Miakinen