2012-11-30 6 views
0

J'ai une application console qui dessine une ligne dans un programme de CAO 3D. Maintenant, pour que cela soit plus clair, je veux changer ces lignes de différentes couleurs.Modifier la couleur de chaque ligne

Mon code lit des variables à partir d'un fichier texte et en calcule des données, puis crée des lignes à partir de ces données calculées. Ce processus est répété avec chaque ligne du fichier texte contenant des données.

Maintenant, je veux Visual Basic pour changer la couleur chaque fois qu'une nouvelle ligne est dessinée, donc j'obtiens des lignes de couleurs différentes.

J'ai essayé d'utiliser une méthode For .. To .. Step, mais cela n'a pas fonctionné. J'ai aussi essayé d'utiliser les variables de mon fichier texte (elles sont différentes donc quand une nouvelle ligne sera lue, le code RVB changera) mais cela ne me laissera que beaucoup de couleurs bleues.

Des suggestions?

EDit:

Voici ce que j'utilise pour dessiner les courbes, le code RGB doit cahnge chaque fois que lorsqu'une ligne avec de nouvelles données est faite:

' Creating a Curve2d object by using the above defined points 
        objLineString = objLineStrings.AddByPoints(PointCount:=points, points:=dataArray) 
        objGeometricStyle = objLineString.Style 
        color = objGeometricStyle.LinearColor 
        objGeometricStyle.LinearColor = RGB(0,0,0) 
+0

Pouvez-vous afficher le code qui dessine les lignes? –

+0

Comment le programme de CAO lit-il les couleurs? Devez-vous spécifier des valeurs RVB ou existe-t-il certains numéros de couleurs prédéfinis que vous pouvez simplement parcourir? – Kratz

+0

Si vous changez RGB (0, 0, 0) ou RGB (255, 0, 0), dessine-t-il une ligne rouge? –

Répondre

1

Qu'en est-:

Dim rand As New Random() ' Used to generate random numbers 
Dim colors(100) as Integer 

' Create the colors 
For i as Integer = 0 to 100 Step 1 
    colors(i) = RGB(rand.Next(256), rand.Next(256), rand.Next(256)) 
Next 

For i As Integer = 0 To 100 Step 1 ' Adjust to your needs 
    ' Creating a Curve2d object by using the above defined points 
    objLineString = objLineStrings.AddByPoints(PointCount:=points, points:=dataArray) 
    objGeometricStyle = objLineString.Style 
    color = objGeometricStyle.LinearColor 
    objGeometricStyle.LinearColor = colors(i Mod 100) ' Mod returns the remainder of i/100, so it's always less than 100. 
Next 

Cela ne vous donnera pas toujours de jolies couleurs, mais elles seront différentes pour chaque ligne. Si vous souhaitez contrôler les couleurs générées, vous pouvez définir un tableau de couleurs prédéfinies et les utiliser dans votre itération.

+0

Merci qui a fonctionné, mais le problème est (ma faute) j'ai eu trois façons de faire une ligne. Et ces trois doivent être de la même couleur, maintenant ils ont des couleurs différentes. et une couleur différente pour les nouvelles données lues. Et aussi ça va très lentement de choisir une couleur. –

+1

Eh bien, créez un ensemble de couleurs, stockez-les dans un tableau et faites une boucle dans le tableau. Voir ma modification. –

+0

Hey, merci cela a fonctionné! –

Questions connexes