1.์๋งํด์์์ ์ขํ
์์ ๊ทธ๋ฆผ์ด ์๋งํด VX ACE์์ ํ๋ฉด์ ์ขํ์์
x์ขํ๋ ์ค๋ฅธ์ชฝ์ด + ๋ฐฉํฅ์ด๊ณ , y์ขํ๋ ์๋์ชฝ์ด + ๋ฐฉํฅ์ด์์
๊ทธ๋ฆฌ๊ณ ํ๋ฉด ์ผ์ชฝ์ด 0,0, ์ค๋ฅธ์ชฝ ์๋๊ฐ 544, 416์ด๊ณ , ํ๋ฉด์ ์ค์์ 272, 208์ด์์
2. ์ด๋ฏธ์ง๋ฅผ ํน์ ๊ฐ๋๋ก ํ์ ์ํค๋ ์คํฌ๋ฆฝํธ
์์ ์ฌ์ง์ฒ๋ผ ์คํฌ๋ฆฝํธ์ฐฝ์ Game_Picture์
ใ กใ กใ กใ กใ ก
def turn(angle)
@angle = angle*-1*180/Math::PI
end
ใ กใ กใ กใ กใ ก
์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ ฅํ๋ฉด,
ใ กใ กใ กใ กใ ก
screen.pictures[i].turn(a)
ใ กใ กใ กใ กใ ก
์์๊ฐ์ ๋ช ๋ น์ด๋ก i๋ฒ์งธ ์ด๋ฏธ์ง๋ฅผ a๋งํผ์ ๊ฐ๋๋ก ํ์ ์ํฌ์ ์์ด์,
์ด๋ ๊ฐ๋๋ ๋ผ๋์์ผ๋ก ์ ๋ ฅํด์ผ ํด์, ์๋ฅผ๋ค์ด์ 30๋๋ฅผ ์ ๋ ฅํ๊ณ ์ถ์ผ๋ฉด
30*(Math::PI/180)
๋ฅผ ์ ๋ ฅํด์ผํด์
๊ทธ๋ฆฌ๊ณ ํ์ ๋ฐฉํฅ์ x์ขํ๊ฐ ์ค๋ฅธ์ชฝ์ด +๊ณ y์ขํ๊ฐ ์๋์ชฝ์ด +๋๊น, ์ค๋ฅธ์ชฝ์ 0๋์์ ์์ํด์ ์๋๋ก ๋ด๋ ค๊ฐ๋ ๋ฐฉํฅ์ด์์
3. ์ด๋ฏธ์ง์ ๊ธธ์ด ๋ณ๊ฒฝํ๊ธฐ
์์ ์ฌ์ง์ฒ๋ผ ์ด๋ฏธ์ง ํ์์์ ๊ฐ๋ก ํ๋ ๋น์จ์ ์กฐ์ ํ๋ฉด, ์ด๋ฏธ์ง์ ๊ฐ๋ก ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ์ ์์ด์
์๋ฅผ๋ค์ด์ ์์ ๊ฐ์ 50์ผ๋ก ์ค์ด๋ฉด, ๊ฐ๋ก๊ฐ ์ ๋ฐ์ผ๋ก ์ค์ด๋ค์ ์ด๋ฏธ์ง๊ฐ ๋์ค๊ฒ ๋๊ณ , 200์ผ๋ก ๋๋ฆฌ๋ฉด ๊ฐ๋ก๊ฐ ๋๋ฐฐ๋ก ๋์ด๋ ์ด๋ฏธ์ง๊ฐ ๋์ค๊ฒ ๋์
์์ ๊ทธ๋ฆผ์ 20x10ํฝ์ ์ ๊ทธ๋ฆผ์ด์์, ๊ทธ๋ฆฌ๊ณ ์ค๋ฅธ์ชฝ์ 10ํฝ์ ๋ถ๋ถ์๋ง ์ด๋ฏธ์ง๊ฐ ์๋๊ฑฐ์์
๊ทธ๋ฆฌ๊ณ ์์ ๊ทธ๋ฆผ์ฒ๋ผ, ์ค์์ ๊ธฐ์ค์ผ๋ก ์ค๋ฅธ์ชฝ์๋ง ์ด๋ฏธ์ง๊ฐ ์๋ ๊ทธ๋ฆผ์ ์ฌ์ฉํ๋ฉด
์ด๋ฏธ์ง์ ๊ฐ๋ก ๋น์จ์ ๋๋ฆฌ๊ฑฐ๋ ์ค์ด๋๊ฑธ๋ก, ์์์ง์ ์ธ ์ด๋ฏธ์ง์ ์ค์์ง์ ์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์, ๋์ฐฉ์ง์ ์ธ ์ด๋ฏธ์ง์ ์ค๋ฅธ์ชฝ ๋ ์ง์ ๊น์ง์ ๊ธธ์ด๋ง ๋๋ฆฌ๊ณ ์ค์ผ์ ์์ด์
4. ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ์ ๊ฐ๋ ๊ตฌํ๊ธฐ
์์ ๊ณต์์ด ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๊ณต์์ด์์,
์์์ ^2๋ ์ ๊ณฑ์ด์์
๊ทธ๋ฆฌ๊ณ ์์ ๊ณต์์ด ๋ ์ ์ฌ์ด์ ๊ฐ๋๋ฅผ ๊ตฌํ๋ ๊ณต์์ด์์
์์์ arctan2๋ ์ผ๊ฐํจ์์ธ ์ํฌํ์ ํธ2์์
5. ๊ทธ๋ฆผ ํ์๋ก ๋ ์ ์ ์ฐ๊ฒฐํ๋ ์ ๋ง๋ค๊ธฐ
ใ กใ กใ กใ กใ ก
def pline(x1,y1,x2,y2,c,op,i)
x1,y1,x2,y2=x1+0.0001,y1+0.0002,x2+0.0003,y2+0.0004
a=Math.atan2(y2-y1,x2-x1)
r=((x2-x1)**2+(y2-y1)**2)**0.5
screen.pictures[i].show("c"+c.to_s, 1, x1,y1, 100*r*0.1, 100, op, 0)
screen.pictures[i].turn(a)
end
ใ กใ กใ กใ กใ ก
์์ ์ฝ๋๊ฐ ๊ทธ๋ฆผ ํ์๋ก x1,y1๊ณผ x2,y2์ ๋ ์ ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ ์ ๋ง๋๋ ์ฝ๋์์
์ฐ์ ์ ์ด ์์ ํ ์ํ์ด๋ ์์ง์ด ๋๋ฉด ์ํฌํ์ ํธ2์ ์ค๋ฅ๊ฐ ๋์ฌ์๋ ์์ด์ ๋ ์ ์ xy์ขํ๋ฅผ ๋ฏธ์ธํ๊ฒ ์๋ก ๋ค๋ฅด๊ฒ ์กฐ์ ํด์
๊ทธ๋ฐ๋ค์ ์์์ ์ค๋ช ํ ๊ณต์๋๋ก ๋ ์ ์ฌ์ด์ ๊ฐ๋์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ค์
์์์ ์ค๋ช ํ ์ด๋ฏธ์ง์ ๊ฐ๋์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ์์ผ๋ก, 1์ ์์ ์์ํด์ 2์ ๊น์ง์ ๊ฐ๋๋ก ํ์ ํ๊ณ , 2์ ๊น์ง์ ๊ฑฐ๋ฆฌ๋งํผ์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋๊ฑฐ์์
์ฌ๊ธฐ์๋ ์์์ ์ฌ๋ ค๋์ 20x10ํฝ์ ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํด์, ์ฆ ์ด๋ฏธ์ง์ ๊ฐ๋ก๋น์จ์ 100์ผ๋ก ํ์ํ๋ฉด 10ํฝ์ ๊ธธ์ด์ ์ด๋ฏธ์ง๊ฐ ๋์ค๊ณ , 10์ผ๋ก ํ์ํ๋ฉด 1ํฝ์ ๊ธธ์ด์ ์ด๋ฏธ์ง๊ฐ ๋์ค๋๊น, ํน์ ๊ธธ์ด์ธ r๋งํผ์ ํฝ์ ์ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ํ์ํ๋ ค๋ฉด 100*0.1*r์ ์ด๋ฏธ์ง์ ๊ฐ๋กํ๋๋น์จ๋ก ์ค์ ํ๋ฉด ๋์
c๋ ์ ์ ์๊น์ด์์
์์์๋ถํฐ ์๋๊น์ง 1~11๋ฒ์ ์๊น์ด์์, ์์์ ์ฌ๋ ค๋์๊ฒ๊ณผ ๋์ผํ 20x10ํฝ์ ํฌ๊ธฐ์ ์ด๋ฏธ์ง์์
๊ฐ๊ฐ์ ์ด๋ฏธ์ง ํ์ผ์ ์ด๋ฆ์ด c1 ~ c11์ด๋ผ ์ ๋ ฅํ c๊ฐ์ ๋ฌธ์์ด๋ก ๋ณํํด์ ๋ฌธ์์ด์ธ c๋ ํฉ์ณ์ ํด๋น ๋ฌธ์์ด์ ์ด๋ฆ์ ์ด๋ฏธ์ง ํ์ผ์ ์ถ๋ ฅํ๋๊ฑฐ์์
๊ทธ๋ฆฌ๊ณ op๋ ์ด๋ฏธ์ง์ ํฌ๋ช ๋์์, 0์ด๋ฉด ์์ ํ ํฌ๋ช ํ๊ฒ ๋์ค๊ณ , 255๋ฉด ์ผ๋ฐ์ ์ธ ์ด๋ฏธ์ง๋ก ๋์ค๊ฒ ๋์
๊ทธ๋ฆฌ๊ณ i๋ ์์ฑํ๋ ์ด๋ฏธ์ง์ ๋ฒํธ์์
๊ทธ๋ฆฌ๊ณ ์์ ์ฌ์ง์ด ์ค์ ๋ก ํด๋น ์ฝ๋๋ฅผ ์ฌ์ฉํด์ ํ๋ฉด์ ์ ์ ์์ฑํ๊ฑฐ์์
์ฒซ๋ฒ์งธ๋ 272,208๊ณผ 172,108,์ ์ด์ด์ฃผ๋ ์ฃผํฉ์(2)์ ์ ์ด์์
๋๋ฒ์งธ๋ 400,300๊ณผ 50,250 ์ ์ด์ด์ฃผ๋ ์ด๋ก์(6)์ ์ ์ด์์
์ธ๋ฒ์งธ๋ 500,100๊ณผ 450,300์ ์ด์ด์ฃผ๋ ํ๋์(8)์ ์ ์ด์์
๊ฐ๊ฐ์ ์๊น๋ณ ์ด๋ฏธ์ง๋ ์์ ๋งํฌ์ ์์ด์
์์ผ...๋จธ๋ฆฌ์ผ..