04. Octave Graph
04. Octave Graph
🐉 01. Graph를 배워보자!
: 오늘은 Octave에서 그래프를 그리는 방법에 대해 배워보려고 합니다!
그래프를 그리는 방법을 배우는 이유는,
앞으로 자유도가 2인(2DOF) 로봇 시뮬레이션을 직접 만들어보기 위해서입니다 🤖
시뮬레이션을 구현하기 위해서는 데이터의 변화를 시각적으로 확인하는 과정이 꼭 필요하기 때문에,
오늘 배울 그래프 그리기 내용은 정말정말 중요합니다!
그럼, 함께 시작해볼까요? 😃

🐉 02. Graph 기본 명령어
: Octave에서 그래프를 그리기 위해서는
어떤 명령어들이 제공되는지를 알아야 원하는 형태의 그래프를 그릴 수 있습니다
그래프와 관련된 기본 명령어들은 아래와 같습니다!
앞으로 시각화 작업을 자주 하게 될 테니 꼭꼭 기억해주세요 😋
1. Octave에서 그래프 창 열기 및 기본 설정

2. 간단한 2차원 그래프 그리기
▶ plot(x, y, '[색상][마커][선스타일]', 'LineWidth', 굵기, 'MarkerSize', 크기)
: x좌표와 y좌표를 연결하여 선을 그림
▶ 색상 옵션 (Color)

▶ 선 스타일 옵션 (Line Style)

▶ 마커 옵션 (Marker)

▶ 선 굵기 및 마커 크기 조절
a. LineWidth: 선 굵기 조절
b. MarkerSize: 마커의 크기 조절
c. MarkerFaceColor: 마커 안 색깔 채우기
3. 그 외 유용한 명령어
a. linspace(시작값, 끝값, 점의 개수): 두 숫자 사이를 일정한 간격으로 나눈 벡터를 생성하는 함수
→ 쉽게 말하면, 일정한 간격으로 숫자를 생성하는 함수
→ [ex] k_values = linspace(0, 2, 50);
b. pause: 일정 시간 동안 실행 멈추기
→ [ex] pause(0.05);
c. text(x, y, '문자열'): 원하는 좌표에 문자열 표시하기
→ [ex] text(x, y, '(1,1)', 'FontSize', 12, 'Color', 'red');
d. 원 좌표 계산법
→ x_c, y_c: 원의 중점 좌표
→ r(radius): 반지름
clc; clear; close all;
radius = 0.5;
center_x = 1.0;
center_y = 0.5;
theta = linspace(0, 2*pi, 100);
x_circle = center_x + radius * cos(theta);
y_circle = center_y + radius * sin(theta);
figure;
plot(x_circle, y_circle, 'r--', 'LineWidth', 1.5);
axis equal;
x_label('X axis');
y_label('Y axis');
title('Draw Circle path')

4. 내용 추가 및 총 정리

🐉 03. Graph 실습
: 지금까지 Octave에서 그래프를 그릴 때 사용하는 기본 명령어들에 대해 알아보았습니다
하지만 명령어만 보고는 감이 잘 안 오실 수도 있을 것 같은데요 😅
그래서 이번에는 이해를 돕기 위해 몇 가지 예제 코드를 준비해봤습니다!
각 예제에는 정답 링크도 함께 첨부되어 있으니,
직접 풀어보면서 이해를 한층 더 깊게 다져보세요 😊
1. 작은 원이 큰원을 따라 움직이도록 만들어주세요
▶ 정답 코드

2. 좌표에 점을 찍고 텍스트를 표시해주세요
▶ 정답 코드

3. 벡터 v=[1;2]가 주어졌을 때, 이 벡터에 스칼라 값 곱 k를 곱하면
벡터의 길이와 방향이 어떻게 변하는지 시각적으로 확인해보세요
- 스칼라 값 k를 0에서 2까지 천천히 증가시키면서,
매 순간마다 벡터 kv를 Octave로 그리고 이를 애니메이션으로 표현하세요
▶ 정답 코드

4. 다음 두 벡터 u = [1; 2], v = [3; -1]가 주어졌을 때,
이 두 벡터에 선형 결합 w = au+bv를 동적으로 시각화하세요
- a는 0에서 1까지 증가하고, b는 1에서 0까지 감소합니다
- 각 단계에서 선형 겹합으로 생성된 벡터 w를 그래프에 표시하고,
애니메이션을 통해 a와 b의 변화에 따라 벡터 w가 어떻게 변하는지 보이세요
▶ 정답 코드

🐉 04. 마무리
: 오늘은 Octave에서 그래프를 그리는 방법에 대해 살펴보았습니다!
다음 글에서는 정역학(Statics) 에 대해 함께 살펴볼 예정입니다
물론, 정역학에서도 Octave 실습이 함께 진행될 예정이니 기대해주세요 😎
그럼 오늘도 읽어주셔서 감사합니다!
다음 글에서 만나요 😊