2013-11-22 9 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; 
       } 

내 문제 여기 건물 "System.Drawing.Rectangle"형의 제 인수를 받아들이고하지 [J] = .RenderTransform 회전;,이 확장 메서드 RenderTransform "System.Drawing.Rectangle"형식의 첫 번째 인수를 수락 할 수 있습니다. 직사각형 구조에는 회전 방법이 없다는 것을 이해합니다. 나는 내가 가지고있는 정보에 혼란을 느낀다.C 번호, 확장 방법으로 RenderTransform는

위 코드는 내 코드의 다른 부분에서 내 데이터를 가져 와서 그 데이터에서 빌드 한 사각형을 회전시키는 코드입니다. 참고로, 나는이 직사각형이 서로 교차하는지 확인하려고합니다. 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 아니요, 시스템 .Drawing.Rectangle

+0

감사합니다. Rect를 System.Windows.Shapes.Rectangle로 변경했지만 이제는 .IntersectsWith 메서드를 사용할 수 없습니다. 어떤 도움이 필요합니까? 고맙습니다. – user3020631

+0

IntersectsWith() 메소드가 표시되지 않습니다. Visual Studio를 사용하고 있으므로 커서가 메서드 맨 위에있을 때 F1 키를 누르면 해당 메서드에 대한 온라인 도움말을 볼 수 있습니다. – MikeSW