[완료][php-cairo 소개]antialiased fill algorithm 찾습니다.

송효진의 이미지

첨부된 파일은 현재 만들고 있는 gd 용 antialias 라이브러리 입니다.

그냥 보시면 티가 잘 안날텐데,
바탕색을 검게 놓고 보면 빨간 도형과 파란 도형이 차이가 납니다.

빨간도형은 제가 만들고 있는것이고,
파란도형은 gd 의 기본 함수 입니다.

문제는 색채우기를 구현하려니 아무리 해도 깔끔하게 채울수가 없습니다.
타원은 만족스럽게 만들 수 있는데 (첨부에는 안나옵니다.)
별모양의 폴리곤을 채우려니 첨부에서 처럼 양다리에 불량화소마냥 거슬리는 부분이 보이네요.
'안쪽' 인지를 계산해서 옅은 부분까지 채우면 될것 같은데,
알고리즘이 잘 안떠오릅니다.

언어에 상관없이 antialias 된 fill 을 구현한 로직이면 됩니다.
감사합니다.

베지어 곡선 알고리즘까지 구해 놨는데,
이게 신경쓰여서 구현을 못하고 있습니다.ㅎㅎ

File attachments: 
첨부파일 크기
Image icon asdf.png25.12 KB
송효진의 이미지

굽슨굽슨

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

wkpark의 이미지

이야~~ 이쁘다 ㅎ

온갖 참된 삶은 만남이다 --Martin Buber

송효진의 이미지

감사감사
그런데 정보좀...굽슨굽슨

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

익명 사용자의 이미지

wkpark의 이미지

라인 알고리즘은 이미 적용하신 것 같고, 찾으시는 것은 Fill 알고리즘입니다~

온갖 참된 삶은 만남이다 --Martin Buber

wkpark의 이미지

자세히 글을 읽어보니, 이미 fill 알고리즘을 구현했는데 살짝 부족하다는 말씀이신가요?

별모양 채워진것을 보니 문제가 없어보입니다만;;;;;

온갖 참된 삶은 만남이다 --Martin Buber

송효진의 이미지

네.
확대해서 보시면 별의 양 발이 깔끔하지 못합니다.
제 성격이 까칠해서 확대 안해도 불량화소마냥 거슬리네요.^^

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

rapzzard의 이미지

http://pierre.libgd.org/polygons/
이 양반은 다 만들어놓고 아직 공개를 안하네용..-_-;;
libgd2.1.0에 반영을 할 생각이라는데-_-;; 걍 포기하고 삽니다;; (뭐 이건 워낙 유명하니 알고 계시리라 생각됩니다..)
http://mlab.uiah.fi/~kkallio/antialiasing/ 요건 보셨나요?-_-)?

저는 사실 두께가 있는 라인 그리는 것때문에 발을 담궜다가-_-)
지금은 wu's line drawing algorithm을 polygon filling에 적용하는 중입니다..-_-);;
점들의 거리가 상대적으로 크면 잘 먹히는데 대개 포인팅 디바이스로 입력받다보니 1,2픽셀이다보니 제대로 동작을 안해서..흙흙;;

송효진의 이미지

감사합니다.
EdgeFlagAA.pdf 읽고 있습니다.
pdf 상에서 코드를 보여주지않고 이론설명만 써있어서 어렵네요.@_@;
소스 받아서 비교해보며 읽어야 겠군요...

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

rapzzard의 이미지

근데 혹시 FSAA도 괜찮은건가요? 인터렉티브하게 보여주지 않을꺼라면야..방법은 얼마든지 많은데;;
같은 쪽을 하시는 것같은데 메신저 추가 가능할까요?;;
Nate : rapzzard@nate.com
MSN : rapzzard@gmail.com 입니다;;

송효진의 이미지

으하하하
rapzzard 님 감사합니다.

http://sourceforge.net/projects/klecks/
이걸로 결정 봤습니다.
cairo wrapper (php-cairo) + svg converter (klecks)
설치하면 그냥 동작합니다.

그런데 아파치 연동이 안됩니다.
cli 버전에서는 잘 되는데,
아파치 모듈에서는 동작을 안하네요.
phpinfo() 에는 cairo 가 나오는데,
오류메세지 조차 없으니 답답합니다.

어줍잖은 생각으로는 thread safe 하지 않은가봅니다.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

rapzzard의 이미지

저도 그걸 쓸 수 있는 상황이었으면 좋겠습니다..;ㅁ;

송효진의 이미지

그냥 권한 문제였네요-_-;;;;;

멋있습니다. ㅎㅎ

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

댓글 첨부 파일: 
첨부파일 크기
Image icon bezier.png25.66 KB
wkpark의 이미지

설치관련 설명서 혹은 참고 레퍼런스 부탁드립니다~~ @@

온갖 참된 삶은 만남이다 --Martin Buber

송효진의 이미지

cairo 가 필요하고,
php-cairo 는 그냥 phpize 면 됩니다.
젠투 ebuild 나갑니다~

참고로 pecl 에도 하나 있는데, 그건 컴파일이 안되더군요.

트랙백(?)
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57691&sca=%BC%B3%C4%A1%2F%BC%B3%C1%A4&sfl=wr_name%7C%7Csubject&stx=%BC%DB%C8%BF%C1%F8&sop=and

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

댓글 첨부 파일: 
첨부파일 크기
Package icon php-cairo-0.1.zip513바이트
송효진의 이미지

새로 만든 예제 입니다.ㅎㅎ

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~

댓글 첨부 파일: 
첨부파일 크기
Package icon cairo.zip1019바이트
Image icon cairo.png140.26 KB

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.