2012-11-30 2 views
0

У меня есть консольное приложение, которое рисует линию в программе 3D CAD. Теперь, чтобы сделать это более ясным, я хочу изменить эти строки в разных цветах.Изменить цвет для каждой строки

Мой код считывает переменные из текстового файла и вычисляет данные из него, а затем создает строки из этих вычисленных данных. Этот процесс повторяется с каждой строкой в ​​текстовом файле, который содержит данные.

Теперь я хочу, чтобы визуальный базовый цвет изменялся каждый раз, когда нарисована новая линия, поэтому я получаю разные цветные линии.

Я пробовал использовать метод «До» .. «..» .. «Step», но это не сработало. Я также попытался использовать переменные из своего текстового файла (они разные, поэтому, когда новая строка будет прочитана, код RGB изменится), но это приведет к тому, что меня будут только синими цветами.

Любые предложения?

РЕДАКТИРОВАТЬ:

Это то, что я использую, чтобы рисовать кривые, код RGB должен cahnge каждый раз, когда линия с новыми данными производится:

' 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

Можете ли вы показать код, который рисует линии? –

+0

Как программа CAD читает цвета? Нужно ли указывать значения RGB или есть определенные предопределенные номера цветов, которые вы можете просто пропустить? – Kratz

+0

Если вы меняете RGB (0, 0, 0) o RGB (255, 0, 0), рисует ли она красную линию? –

ответ

1

насчет:

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 

Это не всегда даст вам «красивые» цвета, но они будут разными для каждой строки. Если вы хотите контролировать генерируемые цвета, вы можете настроить массив предопределенных цветов и использовать их в своей итерации.

+0

Спасибо, что сработали, но проблема в том, что (моя ошибка). У меня есть три способа сделать линию. И эти три должны быть одного цвета, теперь у них разные. и что другой цвет для новых прочитанных данных. А также очень медленно выбирать цвет. –

+1

Тогда создайте набор цветов, сохраните их в массиве и проведите цикл по массиву. См. Мое редактирование. –

+0

Эй, спасибо, что сработало! –

Смежные вопросы