Robotics/Octave

04. Octave Graph

삐약은지 2025. 10. 7. 23:18


04. Octave Graph

 


🐉 01. Graph를 배워보자!

      : 오늘은 Octave에서 그래프를 그리는 방법에 대해 배워보려고 합니다!

 

        그래프를 그리는 방법을 배우는 이유는,
        앞으로 자유도가 2인(2DOF) 로봇 시뮬레이션을 직접 만들어보기 위해서입니다 🤖

 

        시뮬레이션을 구현하기 위해서는 데이터의 변화를 시각적으로 확인하는 과정이 꼭 필요하기 때문에,
        오늘 배울 그래프 그리기 내용은 정말정말 중요합니다!

 

        그럼, 함께 시작해볼까요? 😃

출처: pinterest


 


🐉 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 실습이 함께 진행될 예정이니 기대해주세요 😎

 

        그럼 오늘도 읽어주셔서 감사합니다!
        다음 글에서 만나요 😊