본문 바로가기

전체 글119

2.2 Canvas DrawXX < 나중에 다시 정리 > ex) Canvas_drawRect setStyle 종류 ( 도형을 어떻게 그릴것인지 결정 )style 종류의미설명시각적 예kFill_Style채우기 전용도형 안쪽을 채움■ ●kStroke_Style선(테두리)만 그림내부는 비우고 외곽선만 그림□ ○kStrokeAndFill_Style채우고 선도 그림안도 채우고 테두리도 그림◎ ◉ setStrokeJoin 종류 ( 코너를 어떻게 그릴것인지 결정 )stroke join 종류의미설명시각적 예SkPaint::kMiter_Join날카로운 모서리 (뾰족하게) 연결기본값, 각도가 작을수록 길게 튀어나올 수 있음┏━, ⎾ ┓SkPaint::kBevel_Join모서리를 뚝 자른 형태로 연결뾰족함 없이 평평하게 잘림◣, ↘SkPaint::kRound_Join모서리를.. 2025. 5. 7.
2.4 Canvas drawImage 함수설명drawImage(image, x, y)위치 (x, y)에 이미지를 그린다. 기본 샘플링, paint 없음drawImage(image, x, y, sampling)샘플링 방식 지정 (예: 선형 보간 등)drawImage(image, x, y, sampling, paint)투명도, 효과, blend 설정 가능drawImage(image, dstRect, sampling, paint)이미지를 dstRect에 스케일링해서 그림 함수설명drawImageRect(image, dstRect, sampling)이미지를 dstRect에 맞게 스케일링해서 그림. Paint 없음drawImageRect(image, dstRect, sampling, paint)스케일링 + 투명도/효과/블렌드 적용drawImageR.. 2025. 5. 5.
2.3 Canvas Drawable, DRRect 아래 모양을 렌더링 해보자. struct MyDrawable : public SkDrawable { SkRect onGetBounds() override { return SkRect::MakeWH(50, 100); } void onDraw(SkCanvas* canvas) override { SkPath path; path.conicTo(10, 90, 50, 90, 0.9f); SkPaint paint; paint.setColor(SK_ColorBLUE); canvas->drawRect(path.getBounds(), paint); paint.setAntiAlias(true); paint.setColor(SK_Color.. 2025. 5. 5.
2.1.1 Canvas Clip Rect & Region 1. 아래 모양을 렌더링 해보자.void draw(SkCanvas* canvas) { SkPaint paint; for (SkClipOp op: { SkClipOp::kIntersect, SkClipOp::kDifference } ) { canvas->save(); canvas->clipRect(SkRect::MakeWH(90, 120), op, false); canvas->drawCircle(100, 100, 60, paint); canvas->restore(); canvas->translate(80, 0); }}kIntersect (교집합) : 초록색 부분우측으로 80만큼 이동한 뒤kDifference (차집합) : 빨간.. 2025. 5. 2.