[질문] SWT로 GUI 프로그램 짜는 초보입니다. 도움 부탁드립니다.

tyolee83의 이미지

며칠째 계속 연달아 질문만 올려서

게시판 들어오시는 분들께 죄송한 마음입니다.

초보의 답답한 심정을 조금이나마 이해해 주시기 바랍니다.

SWT로 원을 그리고 이벤트 발생시 원과 원을 잇는 선을 그리고

두 원을 선택해서 더블클릭하면 합쳐지고 다시 더블클릭하면 나눠지고

이런식의 프로그램을 만들고 있습니다.

지금까지 canvas 그리고 GC 클래스에 canvas를 넘겨서

gc.drawOval() 메소드로 캔버스에 원을 그리는 것까지 왔습니다.

그런데, 자료를 찾고 여기저기 뒤져보니

원이나 선 자체를 하나의 객체로 그리는것이 맞는 접근이라는 생각이 듭니다.

저는 일단 캔버스에 원을 그리고

원을 선택하거나 할때는 선택당한 부분이 원 안에 있는지

좌표를 비교하려 했는데요....(그래서 좌표가 원 내부에 있는지 외부에 있는지 어떻게 알아내야 할지 또 고민중이었습니다. ㅠㅠ)

객체로 되어 있다면 뭐 isSelected 이런게 있지 않을까 싶은데...(추측입니다)

그리고 사라지고 나타나는 것도

canvas를 다시 그리는 것을 고려했는데

객체라면 visible, disappear(이것도 추측입니다)

이런것도 있을것 같구요....

그렇다면 canvas에 뭘 그려서 해보겠다는 것 자체가 잘못된 접근인가요??

여기저기 질문할때 그렇게 어렵지 않을것 같다고 하셨는데

초보인 저에겐 며칠째 계속 답답하고 진도도 안나가고 힘드네요... ㅠㅠ

도움좀 부탁드립니다.

덧. 메일 드리면 도와주신다는 분들이 계셨는데, 그분들의 메일 주소를 어떻게 알수 있는지 모르겠습니다. 아이디 클릭해도 안나오던데 ㅠㅠ

june의 이미지

간단하게 말하면 선택한 부분의 좌료와 원이 그려진 좌표를 비교하시려는건가요?
마우스 이벤트중에 마우스의 현재 위치를 포인트 객체나 x,y의 좌표값으로 반환해주는 이벤트 객체가 있습니다.
그걸 이용해서 비교해보시면 될듯합니다.

너무 늦었나요? 해결하셨으면 어떻게 처리하신지 알려주세요~~~~~ ^^

========================
커피는 블랙이나 설탕만..

커피는 블랙이나 설탕만..

tyolee83의 이미지

요약해보면

원을 선택함에 있어서, 원 안에 점(중심이 아니지만 원안에 점을 선택하면 원을 선택한 것이지요)

이걸 어떻게 알아낼까입니다...

생각보다 쉽지 않네요 ㅠㅠ

==========================
Toward Fully Understanding

//TODO

M.W.Park의 이미지

클릭이 발생한 좌표와 원의 중심 좌표간의 거리를 계산하면 될거같습니다만....

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.