Discuss Scratch

bidulule
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Voici un bloc permettant de dessiner un carré rempli de manière super rapide !


De rien
Et hésitez pas si vous avez des questions
aigledor
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Mais c'est pour les pros ce code, j'ai rien compris. Peut-être que tu trouves ça simple mais…
Theo_1er
Scratcher
500+ posts

Dessiner un carré (rempli) le plus rapidement possible

Il n'a pas dit simple mais super rapide. Et on est pas obligé de le croire sur parole, celui qui est intéressé peut faire des tests.
bidulule
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Ah j'ai posté mon message trop vite !
J'ai vu plus tard que griffpatch avait déjà fait un truc du genre ! Après, a tester de ce qui est plus rapide entre nos 2 codes.

Pour ceux qui comprennent pas comment ça marche, Voici l'exploitation :
On commence par dessiner un gros point de la taille du carré qu'on veut dessiner.
Ensuite, on diminue la taille du stylo et on dessine grossièrement des bords carrés autour du point.
Vu que la taille du stylo est encore importante, les coins sont arrondis. Du coup, on diminue la taille du stylo et on retrace le morceau arrondi des bords…
Et ainsi de suite
bidulule
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

(d'ailleurs, le bloc “ajouter 40 à la couleur du stylo” sert à rien mis à part visualiser comment ça marche
aigledor
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

bidulule wrote:

Ah j'ai posté mon message trop vite !
J'ai vu plus tard que griffpatch avait déjà fait un truc du genre ! Après, a tester de ce qui est plus rapide entre nos 2 codes.

Pour ceux qui comprennent pas comment ça marche, Voici l'exploitation :
On commence par dessiner un gros point de la taille du carré qu'on veut dessiner.
Ensuite, on diminue la taille du stylo et on dessine grossièrement des bords carrés autour du point.
Vu que la taille du stylo est encore importante, les coins sont arrondis. Du coup, on diminue la taille du stylo et on retrace le morceau arrondi des bords…
Et ainsi de suite
Merci beaucoup pour les explications
gdpr949041417bac06223e413fcf
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Tu savais qu'au lieu de mettre

(() - ((size::custom)/(2))

Tu peux mettre

((size::custom) / (-2))
bidulule
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

-CocaBleuAAA- wrote:

Tu savais qu'au lieu de mettre

(() - ((size::custom)/(2))

Tu peux mettre

((size::custom) / (-2))
Je n'y avais pas pensé effectivement ^^
Merci du conseil hehe
Mega-Celebi
Scratcher
29 posts

Dessiner un carré (rempli) le plus rapidement possible

Effectivement j'ai testé et c'est hyper rapide, dommage qu'on ne puisse faire qu'un carré et pas de rectangle, du coup ça s'utilisera que dans des cas très précis, mais c'est toujours bon à savoir.

En plus de ce que CocaBleu a dit comme quoi -(size/2) = size/(-2), j'ajouterai que ton 1.4142… c'est la racine carrée de 2, et je pense que ce sera toujours plus précis et efficace d'utiliser la fonction scratch
([racine carrée] de (2))
plutôt qu'une valeur approchée. (Mais c'est de l'ordre du détail x))

Merci d'avoir partagé ça en tous cas.^^

Last edited by Mega-Celebi (June 28, 2021 17:24:34)

gdpr949041417bac06223e413fcf
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Mega-Celebi wrote:

Effectivement j'ai testé et c'est hyper rapide, dommage qu'on ne puisse faire qu'un carré et pas de rectangle, du coup ça s'utilisera que dans des cas très précis, mais c'est toujours bon à savoir.

En plus de ce que CocaBleu a dit comme quoi -(size/2) = size/(-2), j'ajouterai que ton 1.4142… c'est la racine carrée de 2, et je pense que ce sera toujours plus précis et efficace d'utiliser la fonction scratch
([racine carrée] de (2))
plutôt qu'une valeur approchée. (Mais c'est de l'ordre du détail x))

Merci d'avoir partagé ça en tous cas.^^
Enfin un qui m'appelle correctement

Sinon les suggestions c'est ici


Qu'est-ce que vous voulez? Je suis populaire
Mega-Celebi
Scratcher
29 posts

Dessiner un carré (rempli) le plus rapidement possible

La fonction racine carrée existe vraiment, elle est dans les blocs verts.
aigledor
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Mega-Celebi wrote:

La fonction racine carrée existe vraiment, elle est dans les blocs verts.
Oui c'est celle-ci :

([Racine carrée v] de (9))

Ça ne veut pas se mettre en vert
Mega-Celebi
Scratcher
29 posts

Dessiner un carré (rempli) le plus rapidement possible

Elle apparaît en vert dans l'éditeur c'est ce que je voulais dire x))
Theo_1er
Scratcher
500+ posts

Dessiner un carré (rempli) le plus rapidement possible

[racine v] de (9)::operators
bidulule
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Mega-Celebi wrote:

Effectivement j'ai testé et c'est hyper rapide, dommage qu'on ne puisse faire qu'un carré et pas de rectangle, du coup ça s'utilisera que dans des cas très précis, mais c'est toujours bon à savoir.

En plus de ce que CocaBleu a dit comme quoi -(size/2) = size/(-2), j'ajouterai que ton 1.4142… c'est la racine carrée de 2, et je pense que ce sera toujours plus précis et efficace d'utiliser la fonction scratch
([racine carrée] de (2))
plutôt qu'une valeur approchée. (Mais c'est de l'ordre du détail x))

Merci d'avoir partagé ça en tous cas.^^
Effectivement c'est bien la racine carrée de 2 que j'utilise.
La raison pour laquelle je n'utilise pas le bloc fourni par scratch est que la fonction racine carrée est plutôt lente (surtout étant donné que scratch est lent de base).
Puisque je connais déjà le résultat de racine de 2, autant directement mettre la valeur plutôt que la recalculer à chaque fois ^^
gdpr949041417bac06223e413fcf
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Theo_1er wrote:

[racine v] de (9)::operators
Il est pas sur scratch 3.0
gabrielpierrot
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

-CocaBleuAAA- wrote:

Theo_1er wrote:

[racine v] de (9)::operators
Il est pas sur scratch 3.0
Si.

gdpr949041417bac06223e413fcf
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

gabrielpierrot wrote:

-CocaBleuAAA- wrote:

Theo_1er wrote:

[racine v] de (9)::operators
Il est pas sur scratch 3.0
Si.

En effet. Mon éditeur est en anglais c'est pour ça
Mega-Celebi
Scratcher
29 posts

Dessiner un carré (rempli) le plus rapidement possible

bidulule wrote:

Mega-Celebi wrote:

Effectivement j'ai testé et c'est hyper rapide, dommage qu'on ne puisse faire qu'un carré et pas de rectangle, du coup ça s'utilisera que dans des cas très précis, mais c'est toujours bon à savoir.

En plus de ce que CocaBleu a dit comme quoi -(size/2) = size/(-2), j'ajouterai que ton 1.4142… c'est la racine carrée de 2, et je pense que ce sera toujours plus précis et efficace d'utiliser la fonction scratch
([racine carrée] de (2))
plutôt qu'une valeur approchée. (Mais c'est de l'ordre du détail x))

Merci d'avoir partagé ça en tous cas.^^
Effectivement c'est bien la racine carrée de 2 que j'utilise.
La raison pour laquelle je n'utilise pas le bloc fourni par scratch est que la fonction racine carrée est plutôt lente (surtout étant donné que scratch est lent de base).
Puisque je connais déjà le résultat de racine de 2, autant directement mettre la valeur plutôt que la recalculer à chaque fois ^^
Pas faux. Pour ce genre de gros calcul à faire plusieurs fois sur les mêmes valeurs, tu peux le faire une fois et le stocker dans une variable, ici :
mettre [ racine de 2] à ([ racine carrée] de (2))

C'est une petite optimisation que j'utilise souvent, quelque soit le langage
bidulule
Scratcher
1000+ posts

Dessiner un carré (rempli) le plus rapidement possible

Mega-Celebi wrote:

bidulule wrote:

Mega-Celebi wrote:

Effectivement j'ai testé et c'est hyper rapide, dommage qu'on ne puisse faire qu'un carré et pas de rectangle, du coup ça s'utilisera que dans des cas très précis, mais c'est toujours bon à savoir.

En plus de ce que CocaBleu a dit comme quoi -(size/2) = size/(-2), j'ajouterai que ton 1.4142… c'est la racine carrée de 2, et je pense que ce sera toujours plus précis et efficace d'utiliser la fonction scratch
([racine carrée] de (2))
plutôt qu'une valeur approchée. (Mais c'est de l'ordre du détail x))

Merci d'avoir partagé ça en tous cas.^^
Effectivement c'est bien la racine carrée de 2 que j'utilise.
La raison pour laquelle je n'utilise pas le bloc fourni par scratch est que la fonction racine carrée est plutôt lente (surtout étant donné que scratch est lent de base).
Puisque je connais déjà le résultat de racine de 2, autant directement mettre la valeur plutôt que la recalculer à chaque fois ^^
Pas faux. Pour ce genre de gros calcul à faire plusieurs fois sur les mêmes valeurs, tu peux le faire une fois et le stocker dans une variable, ici :
mettre [ racine de 2] à ([ racine carrée] de (2))

C'est une petite optimisation que j'utilise souvent, quelque soit le langage
Oui mais il n'existe pas de variable const avec scratch donc au final je pense pas que ce soit plus optimisé que d'écrire directement la valeur.
En plus, s'il faut faire ça avec chaque constante, ça fait 36000 variables et je trouve ça relou ^^ après ce n'est que mon avis

Powered by DjangoBB