Bonjour
supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
en faite c'est pour tester la couleur des pixels de cette droite fictive
merci
JP
Bonjour
supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
en faite c'est pour tester la couleur des pixels de cette droite fictive
merci
JP
Bonjour
supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
en faite c'est pour tester la couleur des pixels de cette droite fictive
merci
JP
De retour pour répondre à plusieurs posts sans retour de ma part
je remercie donc tous les intervenants pour leurs réponses
je vois en ligne droite la ligne géométrique qui relie les deux points par le
chemin le plus court quelque soit l'angle.Difficile à dessiner sur un écran
et pour cause de pixels
je ne veux pas dessiner de pixels mais récupèrer les coordonnées de chaques
pixels dessiner par la fonction line de vb6 sans dessiner cette ligne puis
récuperer la couleur de ces pixels.
je vais donc passer le reste de mon AM à cogiter sur l'algo de bresenham qui
me semble bien pour mon problème.
Amicalment
JP
De retour pour répondre à plusieurs posts sans retour de ma part
je remercie donc tous les intervenants pour leurs réponses
je vois en ligne droite la ligne géométrique qui relie les deux points par le
chemin le plus court quelque soit l'angle.Difficile à dessiner sur un écran
et pour cause de pixels
je ne veux pas dessiner de pixels mais récupèrer les coordonnées de chaques
pixels dessiner par la fonction line de vb6 sans dessiner cette ligne puis
récuperer la couleur de ces pixels.
je vais donc passer le reste de mon AM à cogiter sur l'algo de bresenham qui
me semble bien pour mon problème.
Amicalment
JP
De retour pour répondre à plusieurs posts sans retour de ma part
je remercie donc tous les intervenants pour leurs réponses
je vois en ligne droite la ligne géométrique qui relie les deux points par le
chemin le plus court quelque soit l'angle.Difficile à dessiner sur un écran
et pour cause de pixels
je ne veux pas dessiner de pixels mais récupèrer les coordonnées de chaques
pixels dessiner par la fonction line de vb6 sans dessiner cette ligne puis
récuperer la couleur de ces pixels.
je vais donc passer le reste de mon AM à cogiter sur l'algo de bresenham qui
me semble bien pour mon problème.
Amicalment
JP
Le 10/01/2010, John-Pet a supposé :De retour pour répondre à plusieurs posts sans retour de ma part
je remercie donc tous les intervenants pour leurs réponses
je vois en ligne droite la ligne géométrique qui relie les deux points par
le chemin le plus court quelque soit l'angle.Difficile à dessiner sur un
écran et pour cause de pixels
je ne veux pas dessiner de pixels mais récupèrer les coordonnées de chaques
pixels dessiner par la fonction line de vb6 sans dessiner cette ligne puis
récuperer la couleur de ces pixels.
je vais donc passer le reste de mon AM à cogiter sur l'algo de bresenham
qui me semble bien pour mon problème.
Amicalment
JP
J'ai donné la réponse à ton problème (qui n'est pas de moi, la réponse)
Private Sub BresLine(InitialX As Long, InitialY As Long, FinalX As Long,
FinalY As Long)
' Bresenham's line algorithm for Microsoft Visual Basic 6.0
' Implementation by Robert Lee July, 2002 Public Domain
ScaleMode = 1
DrawWidth = 1
Dim Steep As Boolean
Dim DeltaX As Long, DeltaY As Long, Delta As Long
Dim StepX As Long, StepY As Long
Dim Coord As Long
Steep = False
DeltaX = Abs(FinalX - InitialX)
If (FinalX - InitialX) > 0 Then
StepX = 1
Else
StepX = -1
End If
DeltaY = Abs(FinalY - InitialY)
If (FinalY - InitialY) > 0 Then
StepY = 1
Else
StepY = -1
End If
If DeltaY > DeltaX Then
Steep = True
Swap InitialX, InitialY
Swap DeltaX, DeltaY
Swap StepX, StepY
End If
Delta = (DeltaY * 2) - DeltaX
For Coord = 0 To DeltaX - 1
If Steep Then
PSet (InitialY, InitialX), QBColor(3)
Else
PSet (InitialX, InitialY)
End If
While Delta >= 0
InitialY = InitialY + StepY
Delta = Delta - (DeltaX * 2)
Wend
InitialX = InitialX + StepX
Delta = Delta + (DeltaY * 2)
Next Coord
Me.PSet (FinalX, FinalY)
End Sub
Sub Swap(Var1, Var2)
Var1 = Var1 Xor Var2
Var2 = Var2 Xor Var1
Var1 = Var1 Xor Var2
End Sub
Private Sub Command1_Click()
BresLine 1680, 2760, 6240, 4080
End Sub
Le 10/01/2010, John-Pet a supposé :
De retour pour répondre à plusieurs posts sans retour de ma part
je remercie donc tous les intervenants pour leurs réponses
je vois en ligne droite la ligne géométrique qui relie les deux points par
le chemin le plus court quelque soit l'angle.Difficile à dessiner sur un
écran et pour cause de pixels
je ne veux pas dessiner de pixels mais récupèrer les coordonnées de chaques
pixels dessiner par la fonction line de vb6 sans dessiner cette ligne puis
récuperer la couleur de ces pixels.
je vais donc passer le reste de mon AM à cogiter sur l'algo de bresenham
qui me semble bien pour mon problème.
Amicalment
JP
J'ai donné la réponse à ton problème (qui n'est pas de moi, la réponse)
Private Sub BresLine(InitialX As Long, InitialY As Long, FinalX As Long,
FinalY As Long)
' Bresenham's line algorithm for Microsoft Visual Basic 6.0
' Implementation by Robert Lee July, 2002 Public Domain
ScaleMode = 1
DrawWidth = 1
Dim Steep As Boolean
Dim DeltaX As Long, DeltaY As Long, Delta As Long
Dim StepX As Long, StepY As Long
Dim Coord As Long
Steep = False
DeltaX = Abs(FinalX - InitialX)
If (FinalX - InitialX) > 0 Then
StepX = 1
Else
StepX = -1
End If
DeltaY = Abs(FinalY - InitialY)
If (FinalY - InitialY) > 0 Then
StepY = 1
Else
StepY = -1
End If
If DeltaY > DeltaX Then
Steep = True
Swap InitialX, InitialY
Swap DeltaX, DeltaY
Swap StepX, StepY
End If
Delta = (DeltaY * 2) - DeltaX
For Coord = 0 To DeltaX - 1
If Steep Then
PSet (InitialY, InitialX), QBColor(3)
Else
PSet (InitialX, InitialY)
End If
While Delta >= 0
InitialY = InitialY + StepY
Delta = Delta - (DeltaX * 2)
Wend
InitialX = InitialX + StepX
Delta = Delta + (DeltaY * 2)
Next Coord
Me.PSet (FinalX, FinalY)
End Sub
Sub Swap(Var1, Var2)
Var1 = Var1 Xor Var2
Var2 = Var2 Xor Var1
Var1 = Var1 Xor Var2
End Sub
Private Sub Command1_Click()
BresLine 1680, 2760, 6240, 4080
End Sub
Le 10/01/2010, John-Pet a supposé :De retour pour répondre à plusieurs posts sans retour de ma part
je remercie donc tous les intervenants pour leurs réponses
je vois en ligne droite la ligne géométrique qui relie les deux points par
le chemin le plus court quelque soit l'angle.Difficile à dessiner sur un
écran et pour cause de pixels
je ne veux pas dessiner de pixels mais récupèrer les coordonnées de chaques
pixels dessiner par la fonction line de vb6 sans dessiner cette ligne puis
récuperer la couleur de ces pixels.
je vais donc passer le reste de mon AM à cogiter sur l'algo de bresenham
qui me semble bien pour mon problème.
Amicalment
JP
J'ai donné la réponse à ton problème (qui n'est pas de moi, la réponse)
Private Sub BresLine(InitialX As Long, InitialY As Long, FinalX As Long,
FinalY As Long)
' Bresenham's line algorithm for Microsoft Visual Basic 6.0
' Implementation by Robert Lee July, 2002 Public Domain
ScaleMode = 1
DrawWidth = 1
Dim Steep As Boolean
Dim DeltaX As Long, DeltaY As Long, Delta As Long
Dim StepX As Long, StepY As Long
Dim Coord As Long
Steep = False
DeltaX = Abs(FinalX - InitialX)
If (FinalX - InitialX) > 0 Then
StepX = 1
Else
StepX = -1
End If
DeltaY = Abs(FinalY - InitialY)
If (FinalY - InitialY) > 0 Then
StepY = 1
Else
StepY = -1
End If
If DeltaY > DeltaX Then
Steep = True
Swap InitialX, InitialY
Swap DeltaX, DeltaY
Swap StepX, StepY
End If
Delta = (DeltaY * 2) - DeltaX
For Coord = 0 To DeltaX - 1
If Steep Then
PSet (InitialY, InitialX), QBColor(3)
Else
PSet (InitialX, InitialY)
End If
While Delta >= 0
InitialY = InitialY + StepY
Delta = Delta - (DeltaX * 2)
Wend
InitialX = InitialX + StepX
Delta = Delta + (DeltaY * 2)
Next Coord
Me.PSet (FinalX, FinalY)
End Sub
Sub Swap(Var1, Var2)
Var1 = Var1 Xor Var2
Var2 = Var2 Xor Var1
Var1 = Var1 Xor Var2
End Sub
Private Sub Command1_Click()
BresLine 1680, 2760, 6240, 4080
End Sub
Bonjour Driss,
Ben oui, il a parlé de :
"je dessine une ligne droite entre ces deux points",.
Donc une ligne "droite" et une droite c'est droit, sinon c'est uns lige
(mais pas droite) !
De facto, une ligne droite peut se mettre dans n'importe quelle figure,
mais il n'y aura que trois possibilités pour qu'elle soit droite :
- verticale
- horizontale
- diagonale (chaque pixel suivant devra être aligné dans la diagonale du
précédent).
Le reste, ce ne sont pas des lignes droites, mais des lignes, et
notamment une ligne qui dans un rectangle toucherait les deux angles
opposés, ne saurait être une ligne droite, mais une ligne tout court.
Je ne joue pas sur les mots, je lis ce qui est écrit (pour une fois),
et il me semble qu'il y a confusion entre la demande (ligne droite) et
ligne tout court, si ma foi, l'auteur, qui s'emble ignorer totalement les
réponses, voulait dire une ligne, il n'avait qu'a ne pas écrire "ligne
droite"...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Driss HANIB" a écrit dans le message de
news:Salut LE TROLL
en fait une droite peut aussi être la diah=gonale d'un rectangle !
Ta méthode ne fonctionnera que dans le tracé dans un carré , ce qui est
la moins courante, ou en tout cas la méthode la moins générale.
Il faut mieux passer par une équation de droite, facile à retrouver si tu
as les coordonnées d'un point origine et du point de fin.
Maintenant effectivement comment est réellement représentée la droite sur
l'objet : là est uine autre chose.
Driss
"LE TROLL" <le a écrit dans le message de news:Cher ami,
C'est nouveau chat, il faudrait faire des mathématiques pour tracer
une ligne maintenant, en VB, avec les fonctions prévues, ah...
Une droite diagonale (qui n'est donc, ni horizontale, ni verticale),
ne peut, il me semble, ne s'inscrire que dans des multiples et
sous-multiples de carrés, sinon ce n'est pas une droite mais une
"TORDUE", avec des "zigue" et des "zagues", or il a dit (car il parle) :
une "DROITE", alors une droite c'est droit, non ?
Et puis il n'est guère intéressé par les réponses a priori...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Vincent Guichard" a écrit dans le message
de news:4b45ea34$0$963$
Le 07/01/2010 13:00, John-Pet a écrit :Bonjour
Bonjour,supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
Les droites sont communément tracées en utilisant l'algo de Bresenham,
tu peux faire une recherche dessus. D'autres algorithmes existent, mais
je crois que c'est celui là qui est utilisé dans les "line" de VB6.en faite c'est pour tester la couleur des pixels de cette droite
fictive
Est-ce que tu considères la droite "réelle" (au sens mathématique) ou
une approximation traçable (par l'algo sus-nommé par exemple)?
Par exemple, si on considère le segment (0,0)-(6,4), la droite de
Bresenham comprendra les pixels (0,0), (1,1), (2,1), (3,2), (4,3), (5,3)
et (6,4) (soit 7 pixels), alors que la droite réelle passe aussi dans
les pixels (1,0), (2,2), (4,2) et (5,4) (soit 11 pixels) (en se
limittant au rectangle inscrit). Et si la droite réelle passe par un
"coin", est-ce que tu veux les pixels de part et d'autre?merci
JP
Vincent Guichard
Bonjour Driss,
Ben oui, il a parlé de :
"je dessine une ligne droite entre ces deux points",.
Donc une ligne "droite" et une droite c'est droit, sinon c'est uns lige
(mais pas droite) !
De facto, une ligne droite peut se mettre dans n'importe quelle figure,
mais il n'y aura que trois possibilités pour qu'elle soit droite :
- verticale
- horizontale
- diagonale (chaque pixel suivant devra être aligné dans la diagonale du
précédent).
Le reste, ce ne sont pas des lignes droites, mais des lignes, et
notamment une ligne qui dans un rectangle toucherait les deux angles
opposés, ne saurait être une ligne droite, mais une ligne tout court.
Je ne joue pas sur les mots, je lis ce qui est écrit (pour une fois),
et il me semble qu'il y a confusion entre la demande (ligne droite) et
ligne tout court, si ma foi, l'auteur, qui s'emble ignorer totalement les
réponses, voulait dire une ligne, il n'avait qu'a ne pas écrire "ligne
droite"...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Driss HANIB" <dhanib@club-internet.fr> a écrit dans le message de
news:udKmtwGkKHA.5520@TK2MSFTNGP06.phx.gbl...
Salut LE TROLL
en fait une droite peut aussi être la diah=gonale d'un rectangle !
Ta méthode ne fonctionnera que dans le tracé dans un carré , ce qui est
la moins courante, ou en tout cas la méthode la moins générale.
Il faut mieux passer par une équation de droite, facile à retrouver si tu
as les coordonnées d'un point origine et du point de fin.
Maintenant effectivement comment est réellement représentée la droite sur
l'objet : là est uine autre chose.
Driss
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de news:
D311EEC2-1D0A-48EA-A62E-B7DF8671A637@microsoft.com...
Cher ami,
C'est nouveau chat, il faudrait faire des mathématiques pour tracer
une ligne maintenant, en VB, avec les fonctions prévues, ah...
Une droite diagonale (qui n'est donc, ni horizontale, ni verticale),
ne peut, il me semble, ne s'inscrire que dans des multiples et
sous-multiples de carrés, sinon ce n'est pas une droite mais une
"TORDUE", avec des "zigue" et des "zagues", or il a dit (car il parle) :
une "DROITE", alors une droite c'est droit, non ?
Et puis il n'est guère intéressé par les réponses a priori...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message
de news:4b45ea34$0$963$ba4acef3@news.orange.fr...
Le 07/01/2010 13:00, John-Pet a écrit :
Bonjour
Bonjour,
supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
Les droites sont communément tracées en utilisant l'algo de Bresenham,
tu peux faire une recherche dessus. D'autres algorithmes existent, mais
je crois que c'est celui là qui est utilisé dans les "line" de VB6.
en faite c'est pour tester la couleur des pixels de cette droite
fictive
Est-ce que tu considères la droite "réelle" (au sens mathématique) ou
une approximation traçable (par l'algo sus-nommé par exemple)?
Par exemple, si on considère le segment (0,0)-(6,4), la droite de
Bresenham comprendra les pixels (0,0), (1,1), (2,1), (3,2), (4,3), (5,3)
et (6,4) (soit 7 pixels), alors que la droite réelle passe aussi dans
les pixels (1,0), (2,2), (4,2) et (5,4) (soit 11 pixels) (en se
limittant au rectangle inscrit). Et si la droite réelle passe par un
"coin", est-ce que tu veux les pixels de part et d'autre?
merci
JP
Vincent Guichard
Bonjour Driss,
Ben oui, il a parlé de :
"je dessine une ligne droite entre ces deux points",.
Donc une ligne "droite" et une droite c'est droit, sinon c'est uns lige
(mais pas droite) !
De facto, une ligne droite peut se mettre dans n'importe quelle figure,
mais il n'y aura que trois possibilités pour qu'elle soit droite :
- verticale
- horizontale
- diagonale (chaque pixel suivant devra être aligné dans la diagonale du
précédent).
Le reste, ce ne sont pas des lignes droites, mais des lignes, et
notamment une ligne qui dans un rectangle toucherait les deux angles
opposés, ne saurait être une ligne droite, mais une ligne tout court.
Je ne joue pas sur les mots, je lis ce qui est écrit (pour une fois),
et il me semble qu'il y a confusion entre la demande (ligne droite) et
ligne tout court, si ma foi, l'auteur, qui s'emble ignorer totalement les
réponses, voulait dire une ligne, il n'avait qu'a ne pas écrire "ligne
droite"...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Driss HANIB" a écrit dans le message de
news:Salut LE TROLL
en fait une droite peut aussi être la diah=gonale d'un rectangle !
Ta méthode ne fonctionnera que dans le tracé dans un carré , ce qui est
la moins courante, ou en tout cas la méthode la moins générale.
Il faut mieux passer par une équation de droite, facile à retrouver si tu
as les coordonnées d'un point origine et du point de fin.
Maintenant effectivement comment est réellement représentée la droite sur
l'objet : là est uine autre chose.
Driss
"LE TROLL" <le a écrit dans le message de news:Cher ami,
C'est nouveau chat, il faudrait faire des mathématiques pour tracer
une ligne maintenant, en VB, avec les fonctions prévues, ah...
Une droite diagonale (qui n'est donc, ni horizontale, ni verticale),
ne peut, il me semble, ne s'inscrire que dans des multiples et
sous-multiples de carrés, sinon ce n'est pas une droite mais une
"TORDUE", avec des "zigue" et des "zagues", or il a dit (car il parle) :
une "DROITE", alors une droite c'est droit, non ?
Et puis il n'est guère intéressé par les réponses a priori...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Vincent Guichard" a écrit dans le message
de news:4b45ea34$0$963$
Le 07/01/2010 13:00, John-Pet a écrit :Bonjour
Bonjour,supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
Les droites sont communément tracées en utilisant l'algo de Bresenham,
tu peux faire une recherche dessus. D'autres algorithmes existent, mais
je crois que c'est celui là qui est utilisé dans les "line" de VB6.en faite c'est pour tester la couleur des pixels de cette droite
fictive
Est-ce que tu considères la droite "réelle" (au sens mathématique) ou
une approximation traçable (par l'algo sus-nommé par exemple)?
Par exemple, si on considère le segment (0,0)-(6,4), la droite de
Bresenham comprendra les pixels (0,0), (1,1), (2,1), (3,2), (4,3), (5,3)
et (6,4) (soit 7 pixels), alors que la droite réelle passe aussi dans
les pixels (1,0), (2,2), (4,2) et (5,4) (soit 11 pixels) (en se
limittant au rectangle inscrit). Et si la droite réelle passe par un
"coin", est-ce que tu veux les pixels de part et d'autre?merci
JP
Vincent Guichard
Salut LE TROLL
je te signale quand même qu'une ligne en diagonale dans un rectangle est
droite sans aucun problème.
Effectivement il y a une instruction pour tracer la ligne et on n'a pas
besoin de formule mathématique pour cela.
Ceci dit la question posée est de rerouver les coordonnées des points
tracés et je pense qu ta méthode pour retrouver les points d'une ligne
n'est pas bonne ou en tout cas pas complète car justement une ligne peut
avoir des angles différents : les lignes verticales ou horizontales ou
diagonales (45° dans tes carrés) ne sont que des cas particuliers.
Comment gères tu les lignes avec un angles différent de 45 ° ??
Driss
"LE TROLL" <le a écrit dans le message de news:Bonjour Driss,
Ben oui, il a parlé de :
"je dessine une ligne droite entre ces deux points",.
Donc une ligne "droite" et une droite c'est droit, sinon c'est uns lige
(mais pas droite) !
De facto, une ligne droite peut se mettre dans n'importe quelle
figure, mais il n'y aura que trois possibilités pour qu'elle soit droite
:
- verticale
- horizontale
- diagonale (chaque pixel suivant devra être aligné dans la diagonale du
précédent).
Le reste, ce ne sont pas des lignes droites, mais des lignes, et
notamment une ligne qui dans un rectangle toucherait les deux angles
opposés, ne saurait être une ligne droite, mais une ligne tout court.
Je ne joue pas sur les mots, je lis ce qui est écrit (pour une fois),
et il me semble qu'il y a confusion entre la demande (ligne droite) et
ligne tout court, si ma foi, l'auteur, qui s'emble ignorer totalement les
réponses, voulait dire une ligne, il n'avait qu'a ne pas écrire "ligne
droite"...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Driss HANIB" a écrit dans le message de
news:Salut LE TROLL
en fait une droite peut aussi être la diah=gonale d'un rectangle !
Ta méthode ne fonctionnera que dans le tracé dans un carré , ce qui est
la moins courante, ou en tout cas la méthode la moins générale.
Il faut mieux passer par une équation de droite, facile à retrouver si
tu as les coordonnées d'un point origine et du point de fin.
Maintenant effectivement comment est réellement représentée la droite
sur l'objet : là est uine autre chose.
Driss
"LE TROLL" <le a écrit dans le message de news:Cher ami,
C'est nouveau chat, il faudrait faire des mathématiques pour tracer
une ligne maintenant, en VB, avec les fonctions prévues, ah...
Une droite diagonale (qui n'est donc, ni horizontale, ni verticale),
ne peut, il me semble, ne s'inscrire que dans des multiples et
sous-multiples de carrés, sinon ce n'est pas une droite mais une
"TORDUE", avec des "zigue" et des "zagues", or il a dit (car il parle)
: une "DROITE", alors une droite c'est droit, non ?
Et puis il n'est guère intéressé par les réponses a priori...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Vincent Guichard" a écrit dans le message
de news:4b45ea34$0$963$
Le 07/01/2010 13:00, John-Pet a écrit :Bonjour
Bonjour,supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
Les droites sont communément tracées en utilisant l'algo de Bresenham,
tu peux faire une recherche dessus. D'autres algorithmes existent, mais
je crois que c'est celui là qui est utilisé dans les "line" de VB6.en faite c'est pour tester la couleur des pixels de cette droite
fictive
Est-ce que tu considères la droite "réelle" (au sens mathématique) ou
une approximation traçable (par l'algo sus-nommé par exemple)?
Par exemple, si on considère le segment (0,0)-(6,4), la droite de
Bresenham comprendra les pixels (0,0), (1,1), (2,1), (3,2), (4,3),
(5,3)
et (6,4) (soit 7 pixels), alors que la droite réelle passe aussi dans
les pixels (1,0), (2,2), (4,2) et (5,4) (soit 11 pixels) (en se
limittant au rectangle inscrit). Et si la droite réelle passe par un
"coin", est-ce que tu veux les pixels de part et d'autre?merci
JP
Vincent Guichard
Salut LE TROLL
je te signale quand même qu'une ligne en diagonale dans un rectangle est
droite sans aucun problème.
Effectivement il y a une instruction pour tracer la ligne et on n'a pas
besoin de formule mathématique pour cela.
Ceci dit la question posée est de rerouver les coordonnées des points
tracés et je pense qu ta méthode pour retrouver les points d'une ligne
n'est pas bonne ou en tout cas pas complète car justement une ligne peut
avoir des angles différents : les lignes verticales ou horizontales ou
diagonales (45° dans tes carrés) ne sont que des cas particuliers.
Comment gères tu les lignes avec un angles différent de 45 ° ??
Driss
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de news:
E923C0D0-55A2-4039-B17C-C82C17E67405@microsoft.com...
Bonjour Driss,
Ben oui, il a parlé de :
"je dessine une ligne droite entre ces deux points",.
Donc une ligne "droite" et une droite c'est droit, sinon c'est uns lige
(mais pas droite) !
De facto, une ligne droite peut se mettre dans n'importe quelle
figure, mais il n'y aura que trois possibilités pour qu'elle soit droite
:
- verticale
- horizontale
- diagonale (chaque pixel suivant devra être aligné dans la diagonale du
précédent).
Le reste, ce ne sont pas des lignes droites, mais des lignes, et
notamment une ligne qui dans un rectangle toucherait les deux angles
opposés, ne saurait être une ligne droite, mais une ligne tout court.
Je ne joue pas sur les mots, je lis ce qui est écrit (pour une fois),
et il me semble qu'il y a confusion entre la demande (ligne droite) et
ligne tout court, si ma foi, l'auteur, qui s'emble ignorer totalement les
réponses, voulait dire une ligne, il n'avait qu'a ne pas écrire "ligne
droite"...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Driss HANIB" <dhanib@club-internet.fr> a écrit dans le message de
news:udKmtwGkKHA.5520@TK2MSFTNGP06.phx.gbl...
Salut LE TROLL
en fait une droite peut aussi être la diah=gonale d'un rectangle !
Ta méthode ne fonctionnera que dans le tracé dans un carré , ce qui est
la moins courante, ou en tout cas la méthode la moins générale.
Il faut mieux passer par une équation de droite, facile à retrouver si
tu as les coordonnées d'un point origine et du point de fin.
Maintenant effectivement comment est réellement représentée la droite
sur l'objet : là est uine autre chose.
Driss
"LE TROLL" <le troll@enfer.fr> a écrit dans le message de news:
D311EEC2-1D0A-48EA-A62E-B7DF8671A637@microsoft.com...
Cher ami,
C'est nouveau chat, il faudrait faire des mathématiques pour tracer
une ligne maintenant, en VB, avec les fonctions prévues, ah...
Une droite diagonale (qui n'est donc, ni horizontale, ni verticale),
ne peut, il me semble, ne s'inscrire que dans des multiples et
sous-multiples de carrés, sinon ce n'est pas une droite mais une
"TORDUE", avec des "zigue" et des "zagues", or il a dit (car il parle)
: une "DROITE", alors une droite c'est droit, non ?
Et puis il n'est guère intéressé par les réponses a priori...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message
de news:4b45ea34$0$963$ba4acef3@news.orange.fr...
Le 07/01/2010 13:00, John-Pet a écrit :
Bonjour
Bonjour,
supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
Les droites sont communément tracées en utilisant l'algo de Bresenham,
tu peux faire une recherche dessus. D'autres algorithmes existent, mais
je crois que c'est celui là qui est utilisé dans les "line" de VB6.
en faite c'est pour tester la couleur des pixels de cette droite
fictive
Est-ce que tu considères la droite "réelle" (au sens mathématique) ou
une approximation traçable (par l'algo sus-nommé par exemple)?
Par exemple, si on considère le segment (0,0)-(6,4), la droite de
Bresenham comprendra les pixels (0,0), (1,1), (2,1), (3,2), (4,3),
(5,3)
et (6,4) (soit 7 pixels), alors que la droite réelle passe aussi dans
les pixels (1,0), (2,2), (4,2) et (5,4) (soit 11 pixels) (en se
limittant au rectangle inscrit). Et si la droite réelle passe par un
"coin", est-ce que tu veux les pixels de part et d'autre?
merci
JP
Vincent Guichard
Salut LE TROLL
je te signale quand même qu'une ligne en diagonale dans un rectangle est
droite sans aucun problème.
Effectivement il y a une instruction pour tracer la ligne et on n'a pas
besoin de formule mathématique pour cela.
Ceci dit la question posée est de rerouver les coordonnées des points
tracés et je pense qu ta méthode pour retrouver les points d'une ligne
n'est pas bonne ou en tout cas pas complète car justement une ligne peut
avoir des angles différents : les lignes verticales ou horizontales ou
diagonales (45° dans tes carrés) ne sont que des cas particuliers.
Comment gères tu les lignes avec un angles différent de 45 ° ??
Driss
"LE TROLL" <le a écrit dans le message de news:Bonjour Driss,
Ben oui, il a parlé de :
"je dessine une ligne droite entre ces deux points",.
Donc une ligne "droite" et une droite c'est droit, sinon c'est uns lige
(mais pas droite) !
De facto, une ligne droite peut se mettre dans n'importe quelle
figure, mais il n'y aura que trois possibilités pour qu'elle soit droite
:
- verticale
- horizontale
- diagonale (chaque pixel suivant devra être aligné dans la diagonale du
précédent).
Le reste, ce ne sont pas des lignes droites, mais des lignes, et
notamment une ligne qui dans un rectangle toucherait les deux angles
opposés, ne saurait être une ligne droite, mais une ligne tout court.
Je ne joue pas sur les mots, je lis ce qui est écrit (pour une fois),
et il me semble qu'il y a confusion entre la demande (ligne droite) et
ligne tout court, si ma foi, l'auteur, qui s'emble ignorer totalement les
réponses, voulait dire une ligne, il n'avait qu'a ne pas écrire "ligne
droite"...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Driss HANIB" a écrit dans le message de
news:Salut LE TROLL
en fait une droite peut aussi être la diah=gonale d'un rectangle !
Ta méthode ne fonctionnera que dans le tracé dans un carré , ce qui est
la moins courante, ou en tout cas la méthode la moins générale.
Il faut mieux passer par une équation de droite, facile à retrouver si
tu as les coordonnées d'un point origine et du point de fin.
Maintenant effectivement comment est réellement représentée la droite
sur l'objet : là est uine autre chose.
Driss
"LE TROLL" <le a écrit dans le message de news:Cher ami,
C'est nouveau chat, il faudrait faire des mathématiques pour tracer
une ligne maintenant, en VB, avec les fonctions prévues, ah...
Une droite diagonale (qui n'est donc, ni horizontale, ni verticale),
ne peut, il me semble, ne s'inscrire que dans des multiples et
sous-multiples de carrés, sinon ce n'est pas une droite mais une
"TORDUE", avec des "zigue" et des "zagues", or il a dit (car il parle)
: une "DROITE", alors une droite c'est droit, non ?
Et puis il n'est guère intéressé par les réponses a priori...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Vincent Guichard" a écrit dans le message
de news:4b45ea34$0$963$
Le 07/01/2010 13:00, John-Pet a écrit :Bonjour
Bonjour,supposons deux points sur une picturebox
je dessine une ligne droite entre ces deux points
comment connaitre la position de chaques pixels de cette droite
Les droites sont communément tracées en utilisant l'algo de Bresenham,
tu peux faire une recherche dessus. D'autres algorithmes existent, mais
je crois que c'est celui là qui est utilisé dans les "line" de VB6.en faite c'est pour tester la couleur des pixels de cette droite
fictive
Est-ce que tu considères la droite "réelle" (au sens mathématique) ou
une approximation traçable (par l'algo sus-nommé par exemple)?
Par exemple, si on considère le segment (0,0)-(6,4), la droite de
Bresenham comprendra les pixels (0,0), (1,1), (2,1), (3,2), (4,3),
(5,3)
et (6,4) (soit 7 pixels), alors que la droite réelle passe aussi dans
les pixels (1,0), (2,2), (4,2) et (5,4) (soit 11 pixels) (en se
limittant au rectangle inscrit). Et si la droite réelle passe par un
"coin", est-ce que tu veux les pixels de part et d'autre?merci
JP
Vincent Guichard