minjeong-oh
기록
minjeong-oh
전체 방문자
오늘
어제
  • 분류 전체보기 (207)
    • ML & Neural Net (3)
    • ◼️GNN (1)
    • ◼️시계열 (1)
    • ◼️추천시스템 (0)
    • ◼️수학 (3)
    • Data Engineer (2)
    • ◼️Spark (1)
    • ◼️Kafka (1)
    • ◼️Elestic Search (0)
    • ◼️Redis (0)
    • ◼️ClickHouse (1)
    • Programming Language (4)
    • ◼️SQL (0)
    • ◼️React (0)
    • ◼️Git (1)
    • ◼️Python (1)
    • ◼️C++ (33)
    • ◼️Fortran 99 (2)
    • ◼️OpenGL (7)
    • ◼️MFC (35)
    • ◼️Flutter (46)
    • ◼️Kotlin (1)
    • ◼️Android (1)
    • ◼️Java (1)
    • ◼️C (4)
    • Development (0)
    • ◼️디자인패턴 (0)
    • ◼️네트워크 (2)
    • ◼️인증 (1)
    • Computer Science (4)
    • 알고리즘 문제풀이 (12)
    • SQL 고득점 Kit 문제풀이 (8)
    • 취업준비 (0)
    • Notion 정리 글 (1)
    • Article Scrap (12)
      • Careerly - Q&A (7)
      • Careerly - Post (2)
    • 기타 등등 (16)

블로그 메뉴

  • 글쓰기
  • 홈
  • 태그
  • 방명록
  • 편집

공지사항

인기 글

태그

  • 인공지능개발자
  • 19년식그램램장착
  • 구조체매개변수
  • mfc
  • 리눅스파티션
  • 그램업그레이드
  • 이차원구조체배열포인터
  • 구조체배열포인터
  • AI배워야하나
  • kafka구축
  • API문서정리
  • NextJSSwagger
  • OpenGL회전
  • hello테마
  • 티스토리폰트배경색없애기
  • SpringBootSwagger
  • 그램풀스팩업그레이드
  • GSLB
  • 이것이C++이다책참고
  • 19년식그램SSD장착

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
minjeong-oh

기록

◼️C

[C] 구조체 배열에 색상 스펙트럼을 설정하기

2024. 3. 11. 11:23

 

Issue

빨강 > 초록 > 파랑 순서로 자연스럽게 변할 수있도록 구조체 배열 변수 R,G,B에 값을 저장하고자 합니다!

 

 

Solve

 

길이 200인 구조체 배열에 색상 스펙트럼 값을 저장할 것입니다.

우선, 구조체 배열을 선언하고, 빨강 > 연두 > 초록 > 청록색 > 파랑 순서로 변화를 줍니다.

 

RGB변화는 다음과 같습니다.

 

빨강에서 연두로 가기위한 RGB (255, 0➡️255, 0)

연두에서 초록으로 가기위한 RGB (255 ➡️ 0,255,0)

초록에서 청록색으로가기위한 RGB (0, 255, 0 ➡️ 255)

청록색에서 파랑으로 가기위한 RGB (0, 255 ➡️ 0, 255)

 

RGB값에 따른 실제 색상은 다음 링크에서 확인하시면됩니다.  https://www.w3schools.com/colors/colors_rgb.asp

#define ARRAY_LENGTH 200

// 구조체 정의
typedef struct {
    int R;
    int G;
    int B;
} Color;


Color colors[ARRAY_LENGTH];

int idx = 199;

//빨강 > 왕 연두
for (int i = 0; i< 50; i ++) {					
    colors[idx].R = 255;
    colors[idx].G = (255/50) * i;
    colors[idx].B = 0;
    idx--;
}

//연두 > 왕 초록
for (int i = 49; i >= 0; i--) {					
    colors[zzk].R = (255/50) * i;
    colors[zzk].G = 255;
    colors[zzk].B = 0;
    zzk--;
}

//왕 초록 > cyan
for (int i = 0; i< 50; i ++) {					
    colors[idx].R = 0;
    colors[idx].G = 255;
    colors[idx].B = (255/50) * i;
    idx--;
}

//cyan > 왕 파랑
for (int i = 49; i >= 0; i --) {					
    colors[idx].R = 0;
    colors[idx].G = (255/50) * i;
    colors[idx].B = 255;
    idx--;
}

 

 

 

이후, 양옆을 빨강, 파랑으로 고정하고 N개의 컬러스펙트럼을 만들어 보겠습니다.

 

//색상을 저장할 리스트.
Color mylist[N]

//파란색으로 시작
if (N > 0) {
    mylist[0].R=0;
    mylist[0].G=0;
    mylist[0].B=255;
}


double color_divde = 198.0/(N-2); //양옆은 제외 (double로 하는 것이 관건!)
for (int i = 1; i <= N-2; i++) {
    int Color_no= int(color_divde*i);  

    mylist[i].R=Color[Color_no].R;
    mylist[i].G=Color[Color_no].B;
    mylist[i].B=Color[Color_no].B;
}

//빨간색으로 끝
if (N > 1) {
    mylist[i].R=Color[199].R;
    mylist[i].G=Color[199].G;
    mylist[i].B=Color[199].B;
}

 

이렇게 해서 최종적으로 N개의 색상 구조체 리스트에 파랑에서 빨강으로 변화하는 값을 넣어봤습니다.

'◼️C' 카테고리의 다른 글

[C] fgets, fscanf 차이  (0) 2023.12.27
C언어 소수점의 자릿수 구하기  (0) 2023.03.06
C언어 2차원 배열 동적 할당  (0) 2020.01.21

    티스토리툴바