data (2).zip
    0.01MB
    pinwheel.zip
    0.06MB

    RLab03

    # 바람개비 돌리기
    
    # 패키지 설치(imager)
    
    # 패키지 로딩
    library(imager)
    
    # 이미지 위치 경로
    img_path <- "C://workspace2/data/pinwheel.png"
    
    # 이미지 읽기
    img <- load.image(img_path)
    
    # 이미지 출력
    plot(img)
    
    # 이미지 크기 변환 (400x400 픽셀)
    img <- resize(img, size_x = 400L, size_y = 400)
    
    # 이미지 출력과 x,y축의 크기 설정 
    plot(img,
         xlim = c(0,400),
         ylim = c(0,400))
    # 이미지 회전 초기 각도 설정
    angle <- 0
    
    while (TRUE) { #무한 번 반복('ESC'키 누르면 반복 종료)
      angle <- angle + 10   #이미지각도를 10도 더함
      imrotate(img, angle, cx=200, cy=200) %>% 
        plot(axes=FALSE) #x,y축은 나타나지 않음
      Sys.sleep(0.2) #0.2초 동안 실행 대기
    }
    
    # 1~100 사이의 3의 배수 합
    # : 1부터 100까지 0.5초 간격으로 1씩 증가하는 동안.
    # 3의 배수의 합을 화면에 출력해 보자.
    
    library(animation)
    
    ani.options(interval = 0.5)
    plot.new() # 프레임 생성
    
    sum <- 0
    for (i in 1:100) {
      if(i %% 3 == 0){
        rect(0,0,1,1,col = "yellow") # 그래픽 프레임 영역 설정
        sum <- sum + i
        text(0.5,0.5,sum,cex = 3,col = rgb(0,0,1,1))
      }
      ani.pause()
    }
    
    #---------------------------------------------------------
    # 당구공 굴리기
    # 당구공 굴러 가도록 해보자.
    # 먼저, 당구대와 당구공 이미지를 만들고,
    # 각각 가로*세로 크기를 300*400, 40*40 변환한다.
    # 단 초기위치는 (0,0)이며, 한번 이동은, x,y방향으로 10씩 움직인다.
    
    library(magick)
    
    # 당구공 이미지 읽기
    ball <- image_read("C://workspace2/data/ball.png")
    
    # 당구대 이미지 읽기
    table <- image_read("C://workspace2/data/table.png")
    
    # 당구공 이미지 가로x세로 변환
    ball <- image_scale(ball, "40x40!")
    
    # 당구대 이미지 가로x세로 변환
    table <- image_scale(table, "300x400!")
    
    # 당구공의 x, y 위치 초기화
    x <- 0
    y <- 0
    
    while (TRUE) {
      # x,y의 위치
      position <- paste("+", x,"+",y, sep = "")
      # table이미지에 ball이미지를 offset위치로 겹침
      img <- image_composite(table, ball, offset = position)
      # img 이미지 출력
      print(img)
      # 0.1초 대기
      Sys.sleep(0.1)
      
      # x,y의 위치 변환 시작
      if(x == 0)
        x_dir <- 1
      if(x == 260)
        x_dir <- -1
      if(y == 0)
        y_dir <- 1
      if(y == 360)
        y_dir <- -1
      
      x <- x + 10 * x_dir
      y <- y + 10 * y_dir
      # x, y 의 위치변환 : 끝
    }
    
    
    
    

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading