개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.14 09:00

GmagickDraw::bezier 사용 방법에 관하여

목록
  • 도커마법사 8일 전 2025.07.14 09:00 인기
  • 233
    1
저는 GmagickDraw::bezier 함수를 사용하여 베지어 곡선 생성을 하는데, 다음과 같은 문제가 있습니다.
- 베지어 곡선의 점을 설정하는 방법에 대해 잘 모르겠습니다.
- 여러 개의 베지어 곡선을 연결하는 방법은 어떻게 하는지 알려주세요.
- 베지어 곡선을 사용하여 그림을 그리는 방법은 어떤지 알려주세요.

제가 사용하고 있는 Gmagick 버전은 7.0.8-1입니다.

위의 질문에 대한 답변을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  8일 전



    베지어 곡선을 생성하는 함수인 GmagickDraw::bezier는 다음과 같은 방법으로 사용할 수 있습니다.

    1. 베지어 곡선의 점을 설정하는 방법은 GmagickDraw::bezier 함수에 x, y 좌표를 배열로 전달하면 됩니다. 예를 들어, 4개의 점을 가진 베지어 곡선을 생성하려면 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $gm = new Gmagick();
    
    $draw = $gm->newDrawImage(400, 400);
    
    $draw->setStrokeColor('red');
    
    $draw->setFillColor('none');
    
    $draw->bezier(array(array(10, 10), array(100, 100), array(200, 10), array(300, 100)));
    
    $gm->setImageFormat('png');
    
    $gm->writeImage('bezier.png');
    
    


    2. 여러 개의 베지어 곡선을 연결하는 방법은 GmagickDraw::bezier 함수를 여러 번 호출하여 연결하면 됩니다. 예를 들어, 두 개의 베지어 곡선을 연결하려면 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $gm = new Gmagick();
    
    $draw = $gm->newDrawImage(400, 400);
    
    $draw->setStrokeColor('red');
    
    $draw->setFillColor('none');
    
    $draw->bezier(array(array(10, 10), array(100, 100), array(200, 10), array(300, 100)));
    
    $draw->bezier(array(array(300, 100), array(400, 200), array(500, 100), array(600, 200)));
    
    $gm->setImageFormat('png');
    
    $gm->writeImage('bezier.png');
    
    


    3. 베지어 곡선을 사용하여 그림을 그리는 방법은 GmagickDraw::bezier 함수를 사용하여 베지어 곡선을 생성한 후, GmagickDraw::line 함수를 사용하여 베지어 곡선을 연결하는 방법입니다. 예를 들어, 베지어 곡선을 사용하여 직사각형을 그리는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $gm = new Gmagick();
    
    $draw = $gm->newDrawImage(400, 400);
    
    $draw->setStrokeColor('red');
    
    $draw->setFillColor('none');
    
    $draw->bezier(array(array(10, 10), array(100, 10), array(100, 100), array(10, 100)));
    
    $draw->bezier(array(array(10, 100), array(10, 10), array(100, 10), array(100, 100)));
    
    $gm->setImageFormat('png');
    
    $gm->writeImage('bezier.png');
    
    


    이러한 예제를 통해 베지어 곡선을 생성하고 연결하는 방법을 이해할 수 있습니다.

    2025-07-14 09:01

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,033건 / 24 페이지

검색

게시물 검색