data.zip
    0.28MB

    # 룰랫 돌리기
    # 1) 룰랫 이미지 읽기
    # 2) 룰렛 이미지 크기 변환
    # 3) 회전수(난수) 생성
    # 4) 이미지 회전 각도 변경
    # 5) 이미지 회전
    # 6) 기준점 설정
    # 7) 이미지와 기준점 출력
    # 8) 실행대기
    
    install.packages("imager")
    library(imager)
    
    # 이미지 경로
    img_path <- "C:\\workspace2\\data\\roulette.png"
    
    # 이미지 파일 읽기
    img <-  load.image(img_path)
    
    # 이미지 출력
    plot(img)
    
    # 룰렛 이미지 변환
    img <- resize(img, size_x = 400L, size_y = 400L)
    
    # 이미지 출력
    plot(img,xlim = c(0,400), ylim = c(0,400))
    
    # 이미지 출력(가로, 세로 축 제거)
    plot(img,xlim = c(0,400), ylim = c(0,400),axes = FALSE)
    
    # 룰렛 회전수(난수) 생성 : 11~20 사이의 정수 1개 추출
    rot.count <- sample(11:20,1)
    rot.count
    
    #회전 각도 초기화
    angle <- 0
    for (i in 1:rot.count) { # 1부터 회전수까지 반복
      angle <- angle + 36 # 회전각도 설정(1회 반복마다 36도 증가)
    
      #차트 제목 설정
      title <- paste("룰랫 회전 :", i, "/", rot.count)
      
      #이미지 출력
      imrotate(img,angle,cx=200, cy=200) %>% 
        # 이미지위에 원 출력
        # x,y 위치에 반지름 30인 원 그리기
        # 배경색 : 적색(투명도)
        draw_circle(x=200, y=30 ,radius = 30, col=c(1,0,0,0), opacity = 0.5) %>% 
        plot(axes=FALSE, main = title)
        Sys.sleep(0.2) #0.2초 실행대기
    }
    #-------------------------------------------------------------------
    # 심바가 정글
    
    # 1) 이미지 읽기
    # 2) 이미지 크기 변환
    # 3) 애니메이션 반복 단계 초기화
    # 4) '심바' 위치 초기화
    # 5) while(true) : '심바' 위치 설정
    # 6) 이미지 합성
    # 7) 이미지 출력
    # 8)애니메이션 실행 대기
    # 9)애니메이션 반복 단계 1증가
    # 10)'심바'의 수평위치(x) 변경
    
    install.packages("magick")
    library(magick)
    
    lion_bg <- image_read("C:\\workspace2\\data\\lion_bg.png")
    lion_1 <- image_read("C:\\workspace2\\data\\lion_1.png")
    lion_2 <- image_read("C:\\workspace2\\data\\lion_2.png")
    
    # 이미지 크기 변경(가로X세로 : 픽셀단위)
    lion_bg <- image_scale(lion_bg,"600x300!")
    lion_1 <- image_scale(lion_1,"100x50!")
    lion_2 <- image_scale(lion_2,"100x50!")
    
    print(lion_bg)
    print(lion_1)
    print(lion_2)
    
    # 이미지 합성 테스트
    img <- image_composite(lion_bg, lion_1, offset = "+100+200")
    print(img)
    
    # 이미지 이동 
    moving <- 0 #애니메이션 반복 단계 초기화
    x <- -100
    y <- 150
    
    while(TRUE){  #무한반복
      if(x<0)
        position <- paste(x, "+", y, sep = "")
    # 심바 위치 결정  
      else
        position <- paste("+" ,x, "+", y, sep = "")
      
      # 이미지 합성(애니메이션 반복 단계에 따른 심바 이미지 합성 변경)
      if(moving %% 2 == 0 ){
        img <- image_composite(lion_bg, lion_1, offset = position)
      }else{
        img <- image_composite(lion_bg, lion_2, offset = position)
    
      }
      #이미지 출력
      print(img)
      
      Sys.sleep(0.3) #애니메이션 실행 대기
      
      if(x>600) #애니메이션 종료 여부
        break
      
      moving <- moving + 1 #반복 단계의 1증가
      
      x <- x + 20
    }

     

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