3차원 공간의 3차원 배열에, 어느 점에서 벡터를 쏘아 3차원 배열을 통과시킬 때,

dnjsgk의 이미지

벡터가 통과하는 배열의 요소를 출력하려고 하는데,

c언어문법과 자료구조만 공부한 상태에서 이걸 하려고 하니, 어떤걸 공부해서 해결해야 할지 감이 안잡힙니다.

교수에게 물어보니 그냥 인터넷 검색해서 하면 된다고만 하는군요..

검색 능력이 딸리는건지 구글링으로도 별 성과가 없고..

어떤 방식으로 해결하면 좋을까요?

dnjsgk의 이미지

어떤 방식으로 해결한다기보다.. 어떤걸 공부하거나, 키워드라도 알려주시면 감사하겠습니다. ㅜㅜ

워나

아르아의 이미지

직선(벡터)과 점(배열의 요소의 중점)사이의 거리만 구하면 되겠네요. 배열의 요소는 구가 아니라 직육면체모양이니 판단하기 에매한 구간이 있을텐데 그런영역에서 정확히 하려면 거리가 아니라 거리벡터를 구해서 그게 요소 내부에 있는지를 보면 되구요.

qiiiiiiiip의 이미지

"3차원 공간의 3차원 배열에, 어느 점에서 벡터를 쏘아 3차원 배열을 통과시킬 때"

이 말이 무슨뜻인지 원글자 분은 이해하시는지요?

문제의 해결방법보다 문제가 무슨 뜻인지를 이해하는게 먼저일 것 같습니다.

3차원 공간의 3차원 배열??
벡터를 쏜다?
배열을 통과시킨다?

모두 인문학적인 표현이지, 이학/공학과는 거리가 먼 표현들이네요..

익명 사용자의 이미지

폴리곤 집합을 통과하는 벡터(ray)를 구하고 싶으신건가요??

아기다리의 이미지

주어진 벡터를 parameterization한 다음에 parameter를 조금씩 증가시켜 나가면서 그 값에 해당하는 3차원 값을 얻어내면 될 것 같습니다.

예를들어, 원래 벡터가 v = (x, y, z)라 할 때,
w(t) = tv = (tx, ty, tz) (0 <= t <= 1)와 같이 나타낸 다음

t들을 작게 증가시켜면서 array[w(t).x][w(t).y][w(t).z] 들을 출력하면 될 듯합니다.

t를 얼마나 작게 증가시켜야 하는지는(t를 0.00000001씩 증가시킬 수도 있지만 그럴 필요가 없어요..) 잘 생각해보시면 답이 나올겁니다..

아기다리의 이미지

배열의 index는 정수여야 하지만 w(t)의 값들은 실수일 수 있으니, floor를 취하면 될 듯 합니다.

컴퓨터 본연의 실수 연산 error도 약간 감안을 하셔야 할 것 같구요..

그리고 지금 보니 t는 반드시 0 이상 1 이하일 이유가 없군요.

shint의 이미지


D3DXIntersect 네이버에서 검색해보세요.

2D는 이거 참고하시면 편합니다.
http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=278&MAEULNo=20&no=32157&ref=32157

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

moldycake의 이미지

그냥삼차원히스토그램아닌가요?

dnjsgk의 이미지

아직 감이 잡히지는 않지만.. 설명해주신 것들 토대로 공부해보겠습니다..

워나

canuyes의 이미지

쏘는 벡터의 시작점을 x,y,z라고 할때, 이 벡터가 3차원 배열 을 통과하여 나오는 탈출구 p,q,r을 찾아보세요.
(고등수학 정도의 계산이면 충분히 구할 수 있을듯 싶습니다.)
그 다음 x,y,z와 p,q,r을 서로 마주보는 가장 먼 대각선으로 갖는 직육면체를 생각해보세요.
그리고나서 이제 대각선 x,y,z ~ p,q,r이 통과하는 단위 정육면체(단위의 크기는 sizeof(arr[0][0][0]) 이겟지요.)의 갯수를 구하면 되지 않을까요?.

만약 n,m,l (n,m,l은 자연수) 직육면체의 대각선을 이었을때, 이것이 통과하는 단위 정육면체의 갯수는
n+m+l-gcd(n,m)-gcd(m,l)-gcd(n,l)+1 이라는 것도 알려져 있으니 여기에 약간의 응용만 한다면 구할 수 있지 않을까요?

snowall의 이미지

일단 2차원에서 그림 그려서 해보세요.

그 다음 3차원 이상으로 확장하는건 쉽습니다.

피할 수 있을때 즐겨라! http://melotopia.net/b

february28의 이미지

자료구조까지 배우셧으면, 왠만한 허찌르기 숙제,왠만한 저의를 알기힘든 출제자의 반응정도는 경험하셨을텐데, 어느부분이 애로사항인지 짐작이 안되시나요?
옛날 칼럼이나 기사들을 검색하면 수학과 프로그래밍에대한 견해들이 있을텐데 그게 어떤 철학적인 힌트가 될수있지만,어딧는지는 모르겠네요...
그리고, 정확한지 애매하지만, 2차원그래프를 생각해보면, y=2x+4라는 그래프가 있을때, y값은 x가 1일때 6,2일때 8,3일때 10이런식으로 진행되는건 아시져? 3차원도 그런 식으로 하면 될듯합니다. 야매로써, FM알고리즘은 어떻게 푸는지 모르겠지만...

--------------------------------------------------------------------------------
open source, open teaching, 천기누설이 꿈~ 은 개뿔...
--------------------------------------------------------------------------------

댓글 달기

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