2013-11-22 1 views
0
private void RemoveUnfitChromosomes() 
     { 
      int[] buildingLW = new int[2 * buildingNo];  //2x for length & width 

      for (int i = 0; i <= 2 * (buildingNo - 1);)  //working values to be changed for user input 
      { 
       buildingLW[i] = 30;  //l,x 
       buildingLW[i + 1] = 10;  //w.y 

       i = i + 2; 
      } 

      foreach (int[] chromosome in population) 
      { 
       int[] temp = new int[3 * buildingNo]; 
       List<Rectangle> building = new List<Rectangle>(); 

       Array.Copy(chromosome, temp, 3 * buildingNo); 

       for (int j = 0; j < buildingNo; j++) 
       { 
        building[j] = new Rectangle(temp[3 * j] - buildingLW[2 * j]/2, temp[3 * j + 1] + buildingLW[2 * j + 1]/2, buildingLW[2 * j + 1], buildingLW[2 * j]); 

        RotateTransform rotate = new RotateTransform(); 
        rotate.Angle = temp[j+2]; 
        rotate.CenterX = temp[j]; 
        rotate.CenterY = temp[j+1]; 

        building[j].RenderTransform= rotate; 
       } 

Моя проблема здесь здания [J] = .RenderTransform вращается;, который будет иметь этот метод расширения RenderTransform, не принимающий первый аргумент типа «System.Drawing.Rectangle». Я понимаю, что структура прямоугольника не имеет метода для вращения. Меня просто смущает информация, которую я имею.C#, метод расширения RenderTransform не acccepting первого аргумента типа "System.Drawing.Rectangle"

Это мой код, в котором я пытаюсь импортировать данные из другой части моего кода, а затем поворачивать свой прямоугольник, построенный из этих данных. FYI, я пытаюсь понять, пересекаются ли какие-либо из этих прямоугольников друг с другом. Я запутался со следующим кодом от http://msdn.microsoft.com/en-us/library/ms754009(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2. Их код смог использовать polyline2.RenderTransform, так же как я могу это сделать?

Я пробовал поиск в Интернете в течение нескольких часов, но я новичок в программировании и не понимаю, что люди говорят иногда, поэтому мои извинения, если вопрос повторяется. Спасибо за ваше время.

ответ

0

RenderTransform не является методом расширения, это свойство, а Rectangle имеет его. System.Windows.Shapes.Rectangle не System.Drawing.Rectangle

+0

Спасибо. Мне удалось изменить свой прямоугольник на System.Windows.Shapes.Rectangle, но теперь я не могу использовать метод .IntersectsWith. Любая помощь? Спасибо – user3020631

+0

Я не вижу никакого метода IntersectsWith(). Вероятно, вы используете Visual Studio, поэтому, когда курсор находится поверх метода, нажмите F1, чтобы получить интерактивную справку для этого метода – MikeSW