PDA

View Full Version : سوال: تبدیل Graphic به Rectangle



kasra1996
یک شنبه 04 آبان 1393, 19:11 عصر
سلام دوستان .
من یه توپی با دستور Graphic ایجاد کردم حالا میخوام برای حرکتش اون رو به نوع Rectangle تبدیل کنم .
میخواستم بدونم باچه دستوری میتونم اینکارو انجام بدم ؟؟ اصلا میشه همچین کاری انجام بدم یا نه ؟
خواهش میکنم راهنماییم کنید :گریه: :ناراحت:

pedram.11
یک شنبه 04 آبان 1393, 20:03 عصر
سلام
تا اونجایی که من میدونم rectangle فقط چارچوب هست... اگر میخواهید تصویر رو حرکت بدید باید از همون graphic یا image و ... استفاده کنید...

ghasem110deh
یک شنبه 04 آبان 1393, 20:27 عصر
با کلید میخوای حرکت کنه یا بصورت رندوم بچرخه ؟
یا با موس ...

kasra1996
یک شنبه 04 آبان 1393, 22:58 عصر
با کلید میخوای حرکت کنه یا بصورت رندوم بچرخه ؟
یا با موس ...
به صورت رندوم بچرخه . میشه ؟

pedram.11
دوشنبه 05 آبان 1393, 00:18 صبح
سلام چرخش دایره، جزئیاتش رو خودتون میتونید ویرایش کنید:
using System;
using System.Drawing;
using System.Windows.Forms;


namespace gtr
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CreateShape();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Paint += Form1_Paint;
}
Bitmap b;
float deg = 0;
void CreateShape()
{
b = new Bitmap(120, 120);
Graphics g = Graphics.FromImage(b);
g.DrawEllipse(new Pen(Brushes.Black,5), 10, 10, 100, 100);
g.DrawEllipse(new Pen(Brushes.Green, 5), 25, 25, 30, 30);
}
void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
g.RotateTransform(deg);
g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
g.DrawImage(b, new Point(0, 0));
}
private void timer1_Tick(object sender, EventArgs e)
{
if ((deg+=1) > 360)
deg = 0;
this.Invalidate();
}
}
}

kasra1996
دوشنبه 05 آبان 1393, 00:41 صبح
سلام چرخش دایره، جزئیاتش رو خودتون میتونید ویرایش کنید:
using System;
using System.Drawing;
using System.Windows.Forms;


namespace gtr
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CreateShape();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Paint += Form1_Paint;
}
Bitmap b;
float deg = 0;
void CreateShape()
{
b = new Bitmap(120, 120);
Graphics g = Graphics.FromImage(b);
g.DrawEllipse(new Pen(Brushes.Black,5), 10, 10, 100, 100);
g.DrawEllipse(new Pen(Brushes.Green, 5), 25, 25, 30, 30);
}
void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
g.RotateTransform(deg);
g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
g.DrawImage(b, new Point(0, 0));
}
private void timer1_Tick(object sender, EventArgs e)
{
if ((deg+=1) > 360)
deg = 0;
this.Invalidate();
}
}
}


مرسی دوست عزیز :قلب:
ولی من منظورم چرخش به دور خودش نبود . منظورم حرکت در صفحه بود .
اما بازم مرسی که کمکم کردی

ghasem110deh
دوشنبه 05 آبان 1393, 19:38 عصر
سلام این سورس حرکت بصورت رندومی :

http://projectp30.ir/%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE/

و اینم حرکت با کی بورد :

http://s5.picofile.com/file/8148170876/PicMoveKEY.rar.html