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)์˜ ์„ ์ด์—์š”











[๋งํฌ]


๊ฐ๊ฐ์˜ ์ƒ‰๊น”๋ณ„ ์ด๋ฏธ์ง€๋Š” ์œ„์˜ ๋งํฌ์— ์žˆ์–ด์š”