0

複数の円に基づいて形状を生成できる必要があります。例: 正方形の周りに 8 つの円を配置する場合、周囲の各円に接する正方形のサイズを計算する方法。円または楕円についても同じ問題です。

ASCII形式で画像を追加しようとしましたが、明確ではありません。

                                        

                     @@@@@ @@@@@                    
                   @@@@@@@@@@ @@@@@@@@@@                  
                  @@@@@ @@@@@@ @@@@@@ @@@@@                 
                 @@@@ @@@@ @@@@ @@@@                
                @@@@ @@@@@@@ @@@@               
                @@@ @@@@@ @@@               
               @@@ @@@ @@@              
               @@@ @@@ @@@              
               @@ @@@ @@              
               @@@ @@@ @@@              
               @@@ @@@ @@@              
                @@ @@@@@ @@               
         @@@@@ @@@ @@@@@ @@@ @@@@@        
      @@@@@@@@@@@@@@ @@@ @@@ @@@@@@@@@@@@@     
     @@@@@@ @@@@@@@@@ @@@@@ @@@@@ @@@@@@@@ @@@@@@    
    @@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@   
    @@@ @@@@@@@@@@@ @@@@@@@@@@@@ @@@@  
   @@@ @@@,,,,,,,,,,,,,,,,,,,@@@ @@@  
   @@@ @@@、@@@ @@  
   @@ @@、@@@ @@  
   @@ @@、@@ @@  
   @@ @@、@@@ @@  
   @@ @@、@@@ @@  
   @@@ @@@, , @@ @@@  
   @@@@ @@@@, , @@@ @@@  
    @@@@ @@@@ , , @@@@ @@@   
     @@@@ @@@@ , , @@@@ @@@@@   
      @@@@@@@@@@@ , , @@@@@@@@@@@    
       @@@@@@@@@ , , @@@@@@@@@      
      @@@@@@@@@@@ , , @@@@@@@@@@@    
     @@@@ @@@@ , , @@@@ @@@@@   
    @@@@ @@@@ , , @@@@ @@@   
   @@@@ @@@@, , @@@ @@@  
   @@@ @@@, , @@ @@@  
   @@ @@、@@@ @@  
   @@ @@、@@@ @@  
   @@ @@、@@ @@  
   @@ @@、@@@ @@  
   @@@ @@@,,,,,,,,,,,,,,,,,,,@@@ @@  
   @@@ @@@@@@@@@@@ @@@@@@@@ @@@ @@@  
    @@@ @@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@  
    @@@@ @@@@@@@ @@@@ @@@@ @@@@@@@@ @@@@   
     @@@@@@ @@@@@@@@ @@@@ @@@@ @@@@@@@ @@@@@@    
      @@@@@@@@@@@@@ @@@@@@@ @@@@@@@@@@@@     
         @@@@@ @@ @@@@@ @@ @@@@@        
               @@@ @@@ @@@              
               @@@ @@@ @@@              
               @@ @@@ @@              
               @@@ @@@ @@@              
               @@@ @@@ @@@              
                @@ @@@@@ @@               
                @@@ @@@@@@@ @@@               
                @@@@ @@@@ @@@@ @@@@               
                 @@@@@ @@@@ @@@@ @@@@@                
                  @@@@@@@@@@@ @@@@@@@@@@                 
                    @@@@@@@@ @@@@@@@@                   

真ん中の四角ではなく円でも同じはずです。

ご協力いただきありがとうございます。

4

2 に答える 2

0

みんなの回答のおかげで、この問題に対して Python コードを生成する方法がわかりました。

以下は、要求された形状を生成します

   import sys
   import pygame
   import math
   
   pygame.init()
   
   #create the screen
   window = pygame.display.set_mode((640, 480))
  
   n=15; #n satellites
   r=20; #radius of a satellite
   R= abs( (2*r) / (2*(math.sin(math.pi/n))) ); # circumradius of the regular polygon.
   a=360/n; #rotating angle for vertex
   color = (255, 255, 255);
 
    
  #input handling (somewhat boilerplate code):
  while True:
      for event in pygame.event.get():
          if event.type == pygame.QUIT:
              sys.exit(0)
          if event.type == pygame.MOUSEBUTTONUP:
              mpos = pygame.mouse.get_pos();
              mx, my = event.pos
              for angle in range(0, 361):
                  theta = math.radians(angle)
                  x = R * math.cos(theta)
                  y = R * math.sin(theta)
                  print "Theta = "+str(theta)
                  if (angle % int(a) == 0):
                      pygame.draw.circle(window, color, (int(mx+x),int(my+y)), r,1);
              pygame.draw.circle(window, color, (mx,my), int(R-r),1);
              pygame.display.flip();

ここに画像の説明を入力

于 2013-10-25T05:44:13.140 に答える