2013-11-22 67 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」

上面是我的代碼,我試圖從我的代碼的另一部分導入我的數據,然後旋轉我的矩形從這些數據構建。僅供參考,我試圖查看是否有任何矩形相互交叉。我很困惑從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