Â÷Æ®¸¦ 3D·Îµµ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù. ¿¡¸®¾îÀÇ
Area3DStyle °´Ã¼°¡ 3D Ãâ·Â °ü·Ã ±â´ÉÀ» Á¦°øÇϸç
´ÙÀ½°ú °°Àº ¼Ó¼ºÀ» °¡Áø´Ù.
¼Ó¼º |
¼³¸í |
Enable3D |
3Â÷¿ø Ãâ·Â ±â´ÉÀ» »ç¿ëÇÑ´Ù. µðÆúÆ®
°ªÀÌ false¿©¼ º°´Ù¸¥ ÁöÁ¤ÀÌ ¾øÀ¸¸é 2D·Î Ãâ·ÂµÈ´Ù. ÀÌ °ªÀ» true·Î ¹Ù²Ù¾î¾ß 3DÂ÷Æ®°¡
³ªÅ¸³´Ù. |
Inclination |
¼öÆòÃà¿¡¼ÀÇ È¸Àü °¢µµ¸¦ ÁöÁ¤ÇÑ´Ù. µðÆúÆ®´Â À§¿¡¼ ¾Æ·¡·Î ³»·Áº¸´Â 30µµ·Î µÇ¾î ÀÖ´Ù. |
Rotation |
¼öÁ÷Ãà¿¡¼ÀÇ È¸Àü °¢µµÀÌ´Ù. µðÆúÆ®´Â ¿À¸¥ÂÊ¿¡¼ ¿ÞÂÊÀ» ¹Ù¶óº¸´Â 30µµ·Î µÇ¾î ÀÖ´Ù. À½¼ö °¢µµÀÌ¸é º®ÀÌ ¿À¸¥ÂÊÀ¸·Î À̵¿ÇÑ´Ù. |
Perspective |
¿ø±Ù°¨À» ÁöÁ¤ÇÑ´Ù. ±×¸®µå ¼±ÀÌ ÆòÇàÇÏÁö ¾Ê°í ±¸¼®ÀÇ ¼Ò½ÇÁ¡À» ÇâÇÏ´Â Çü½ÄÀÌ
µÈ´Ù. |
IsRightAngleAxes |
isometric projection ±â¹ýÀ» »ç¿ëÇÑ´Ù. ÁøÂ¥ 3D´Â ¾Æ´ÏÁö¸¸ ƯÁ¤ ±íÀÌ¿¡¼´Â °¡Àå ÀÚ¿¬½º·´´Ù. Perspective¿Í´Â ¹èŸÀûÀÌ´Ù. |
WallWidth |
º®ÀÇ µÎ²²¸¦ ÁöÁ¤ÇÑ´Ù. |
PointDepth |
µ¥ÀÌÅÍ Æ÷ÀÎÆ®ÀÇ ±íÀ̸¦ Æø¿¡ ´ëÇÑ ºñÀ²·Î ÁöÁ¤ÇÑ´Ù. 100%ÀÌ¸é ¸·´ë ±×·¡ÇÁ
À¸éÀÌ Á¤»ç°¢ÇüÀÌ¸ç ±×º¸´Ù ´õ ±íÀ¸¸é ¾ÈÂÊÀ¸·Î ±æÂßÇØÁø´Ù. |
PointGapDepth |
µ¥ÀÌÅÍ Æ÷ÀÎÆ®°£ÀÇ °£°ÝÀ» ÁöÁ¤ÇÑ´Ù. µÎ °³ÀÇ ¸·´ë ±×·¡ÇÁ¸¦ ¾Õ µÚ·Î ¹èÄ¡ÇßÀ»
¶§ ÀÌ ¼Ó¼º¿¡ µû¶ó ¸·´ë°£ÀÇ °Å¸®°¡ ´Þ¶óÁø´Ù. |
IsClustered |
¹Ù, Ä÷³ Â÷Æ®°¡ Ŭ·¯½ºÅÍ »óÅÂÀÎÁö¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀÌ trueÀÌ¸é ¸·´ë¸¦ ³ª¶õÈ÷ ¹èÄ¡Çϰí falseÀÌ¸é ¾ÕµÚ·Î ¹èÄ¡ÇÑ´Ù. |
¼Ó¼ºÀÇ Àǹ̸¦ ÀÐ¾î ºÁµµ ÀÌ °ªÀÌ Â÷Æ®ÀÇ ¾î¶² ¸é¿¡ ¿µÇâÀ» ¹ÌÄ¡´ÂÁö Á÷°üÀûÀ¸·Î ÆÄ¾ÇÇÏ±â ¾î·Æ´Ù. °°ÀÌ ÁöÁ¤ÇÒ ¼ö ¾ø´Â ¹èŸÀûÀÎ ¼Ó¼ºµµ ÀÖ°í Â÷Æ® ŸÀÔ¿¡ µû¶ó È¿°ú°¡ ¾à°£¾¿ ´Þ¶óÁö±âµµ ÇÑ´Ù.
ÀÌ·± º¹ÀâÇÑ ¼Ó¼ºÀº ±ÛÀ» Àоî ÀÌÇØÇÏ´Â °Íº¸´Ù´Â ½ÇÁ¦ °ªÀ» ¹Ù²ã °¡¸ç ´«À¸·Î È¿°ú¸¦ È®ÀÎÇØ º¸´Â °ÍÀÌ ÀÌÇØÇϱâ
½±´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÌ·± ¸ñÀûÀ¸·Î ¸¸µç °ÍÀ̸ç Űº¸µå·Î °¢ ¼Ó¼ºÀ» ½ÇÇàÁß¿¡ Á¶Á¤ÇØ º»´Ù. ¼Ò½º¸¦ º¸¸é °¢ ۰¡ ¾î¶² °ªÀ» Á¶Á¤ÇÏ´ÂÁö, °ªÀÇ ¹üÀ§´Â ¾î¶²Áö, µðÆúÆ®´Â ¹«¾ùÀÎÁö ¾Ë ¼ö ÀÖ´Ù.
private void Form1_Load(object sender, EventArgs
e)
{
chart1.Series.Add("");
chart1.Series.Add("");
Random
R = new Random(100);
double
sale = 50;
double
cost = 30;
double
profit = 10;
for
(int i = 0; i < 10; i++)
{
sale
+= R.Next(-4, 5);
chart1.Series[0].Points.AddY(sale);
cost
+= R.Next(-4, 5);
chart1.Series[1].Points.AddY(cost);
profit
+= R.Next(-4, 5);
chart1.Series[2].Points.AddY(profit);
}
chart1.Series[0].ChartType
= SeriesChartType.Line;
chart1.Series[0].Color
= Color.Blue;
chart1.Series[0].BorderWidth
= 2;
chart1.Series[1].ChartType
= SeriesChartType.Column;
chart1.Series[1].Color
= Color.Red;
chart1.Series[2].ChartType
= SeriesChartType.Column;
chart1.Series[2].Color
= Color.Green;
chart1.Focus();
}
private void chart1_KeyPress(object sender,
KeyPressEventArgs e)
{
ChartArea3DStyle
a = chart1.ChartAreas[0].Area3DStyle;
switch
(e.KeyChar)
{
case
'q':a.Inclination = Math.Min(a.Inclination + 5, 90); break;
case
'a':a.Inclination = Math.Max(a.Inclination -5, -90); break;
case
'w':a.Rotation = Math.Min(a.Rotation + 5, 180); break;
case
's':a.Rotation = Math.Max(a.Rotation - 5, -180);break;
case
'e': a.Perspective = Math.Min(a.Perspective + 5, 100); break;
case
'd': a.Perspective = Math.Max(a.Perspective - 5, 0); break;
case
'r': a.WallWidth = Math.Min(a.WallWidth + 2, 30); break;
case
'f': a.WallWidth = Math.Max(a.WallWidth - 2, 0); break;
case
't': a.PointDepth = Math.Min(a.PointDepth + 25, 1000); break;
case
'g': a.PointDepth = Math.Max(a.PointDepth - 25, 0); break;
case
'y': a.PointGapDepth = Math.Min(a.PointGapDepth + 25, 1000); break;
case
'h': a.PointGapDepth = Math.Max(a.PointGapDepth - 25, 0); break;
case
'z': a.Enable3D = !a.Enable3D;break;
case
'x':
a.Inclination
= 30;
a.Rotation
= 30;
a.Perspective
= 0;
a.WallWidth
= 7;
a.PointDepth
= 100;
a.PointGapDepth
= 100;
a.IsClustered
= false;
a.IsRightAngleAxes
= true;
break;
case
'c':a.IsClustered = !a.IsClustered;break;
case
'v':a.IsRightAngleAxes = !a.IsRightAngleAxes;break;
}
Text
= String.Format("inc={0},rot={1},per={2},wall={3},dep={4},gap={5}",
a.Inclination,
a.Rotation,a.Perspective, a.WallWidth,
a.PointDepth,
a.PointGapDepth);
}
µÎ °³ÀÇ Ä÷³ ½Ã¸®Áî¿Í ÇѰ³ÀÇ ¶óÀÎ ½Ã¸®Á Â÷Æ®¿¡ Ç¥½ÃÇß´Ù. Űº¸µå
ÀÔ·ÂÀ» ¹ÞÀ¸·Á¸é Â÷Æ®¿¡°Ô Æ÷Ä¿½º¸¦ ÁÖ¾î¾ß Çϸç KeyPress À̺¥Æ®¿¡¼ ´·¯Áø Ű¿¡ µû¶ó ¼Ó¼º°ªÀ»
Á¶Á¤ÇÑ´Ù. 3D ¿É¼ÇÀ» ÁöÁ¤ÇÏÁö ¾Ê¾Æ óÀ½ ½ÇÇàÇϸé 2D·Î
Ãâ·ÂµÈ´Ù.
ÀÌ »óÅ¿¡¼ ۸¦ ´·¯ ¼Ó¼ºÀ» Á¶Á¤ÇÏ¸ç °¢ ŰÀÇ ±â´ÉÀº ¼Ò½º¸¦ º¸¸é ¾Ë ¼ö ÀÖ´Ù. z۰¡ 3D ¿É¼ÇÀ» Åä±ÛÇϸç xŰ´Â
¸ðµç ¼Ó¼ºÀ» µðÆúÆ®·Î µÇµ¹¸°´Ù. Z۸¦ ´©¸£¸é 3D Â÷Æ®°¡
³ªÅ¸³´Ù.
Çϴÿ¡ ÆÄ¶õ ±¸¸§ÀÌ ¶° ÀÖ°í ¶¥¿¡ ¾ÆÆÄÆ® 2µ¿ÀÌ ÁÙ Áö¾î ¼ ÀÖ´Ù. ÀÌ »óÅ¿¡¼ qa, ws۸¦ ´·¯ ¼öÆò, ¼öÁ÷ °¢µµ¸¦ Ʋ¸é ´Ù¸¥ °¢µµ¿¡¼ ¹Ù¶óº¼ ¼ö ÀÖ´Ù. x۸¦ ´©¸£¸é
¾ðÁ¦µçÁö µðÆúÆ® ¿É¼ÇÀ¸·Î µ¹¾Æ°£´Ù.
ed, rfŰ´Â ¿ø±Ù°¨°ú º® µÎ²²¸¦ Á¶Á¤ÇÑ´Ù.
tg´Â ¸·´ëÀÇ µÎ²²¸¦ Á¶Á¤Çϰí yh´Â
¸·´ë°£ÀÇ °Å¸®¸¦ º¯°æÇÑ´Ù. °Å¸®¸¦ ÃæºÐÈ÷ ¶ç¿ì¸é µÎ Â÷Æ®°¡ °¢°¢ µû·Î ¹èÄ¡µÈ´Ù.
c۸¦ ´·¯ Ŭ·¯½ºÅÍ »óÅ·Π¹èÄ¡ÇÏ¸é µÎ ¸·´ë°¡ ¾ÕµÚ°¡ ¾Æ´Ñ Á¿ì·Î
³ª¶õÈ÷ ¹è¿µÈ´Ù. 2D¿¡¼´Â ´ç¿¬È÷ ³ª¶õÈ÷ ¹èÄ¡ÇÒ ¼ö¹Û¿¡ ¾øÁö¸¸ 3D¿¡¼´Â
¾ÕµÚ·Îµµ ¹èÄ¡ÇÒ ¼ö ÀÖ´Ù.
v۸¦ ´·¯ IsRightAngleAxes
¿É¼ÇÀ» Åä±ÛÇÏ¸é °¢µµ°¡ Â÷Æ®¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ¹æ½ÄÀÌ ´Þ¶óÁø´Ù. °¢µµ¸¦ ¹Ù²ã °¡¸ç Â÷Æ®¸¦
ȸÀü½Ãų ¶§´Â ÀÌ ¿É¼ÇÀ» ²ô´Â °ÍÀÌ ´õ ÀÚ¿¬½º·´´Ù.
ÀÌ ¿¹Á¦¸¦ ÅëÇØ 3D Â÷Æ®ÀÇ °¢ ¼Ó¼ºÀÌ ¾î¶² ¿µÇâÀ» ¹ÌÄ¡´ÂÁö ¿¬±¸ÇØ
º¸°í ¸ñÀû¿¡ µü ¸Â´Â ¿É¼ÇÀ» ã¾Æ Àû¿ëÇÏ¸é µÈ´Ù. ¸»·Î ¼³¸íÇÏ´Â °Íº¸´Ù´Â ÈξÀ ´õ Á÷°üÀûÀ¸·Î ÀÌÇØÇÒ
¼ö ÀÖ°í ¿É¼Ç°£ÀÇ Á¶ÇÕ È¿°ú¸¦ Å×½ºÆ®Çϱ⵵ ½±´Ù.
ÀÌ»óÀ¸·Î Â÷Æ® ÄÁÆ®·Ñ¿¡ ´ëÇÑ °Á¸¦ ¸¶Ä£´Ù. °³¹ßÅø¿¡ ±âº» Æ÷ÇÔµÈ
ÄÁÆ®·ÑÀ̶ó±â¿¡´Â ±â´ÉÀÌ ´Ùä·Ó°í ¾ÈÁ¤¼ºÀ̳ª ¼º´Éµµ ÃæºÐÈ÷ ¸¸Á·ÇÒ¸¸ÇÑ ÄÁÆ®·ÑÀÌ´Ù. ¾çÀÌ Á» ¸¹Áö¸¸ ÃæºÐÇÑ
½Ã°£À» ÅõÀÚÇÏ¿© Àß ¿¬±¸ÇØ µÎ¿ö µÎ¸é ½Ç¹«¿¡ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.