سلام دوستان من توي فرم يه مربع و يه دايره دارم كه ميخوام با ماوس دايره رو بكشم به يه سمت ديگه ي فرم كدشو ميخواستم!!!
لطفا راهنماييم كنين.
سلام دوستان من توي فرم يه مربع و يه دايره دارم كه ميخوام با ماوس دايره رو بكشم به يه سمت ديگه ي فرم كدشو ميخواستم!!!
لطفا راهنماييم كنين.
آخرین ویرایش به وسیله fayeze : سه شنبه 17 تیر 1393 در 15:22 عصر
يعني هيشكي نميدونه؟
اول یه متغیر گلوبال از نوع پوینت بسازین ...
تو رویداد mouseDown مقدار اونو برابر location ارگومان رویداد کنین ...
تو رویداد mouseMove هم اینو بنویس :
button1.Location=new Point(e.X+button1.Location.X- MouseDownLocation.X, e.Y +button1.Location.Y- MouseDownLocation.Y);
این کد ها رو تست کنید.
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button==MouseButtons.Left)
{
Graphics graphics = CreateGraphics();
graphics.FillEllipse(new SolidBrush(Color.BlueViolet), e.X-25, e.Y-25, 40, 40);
graphics.Dispose();
}
}
}
آخرین ویرایش به وسیله mmdsharifi : سه شنبه 17 تیر 1393 در 15:21 عصر
من نحوه کلی کار رو گفتم شما میتونی دایره رو از عکس بگیری یا تو یه پنل یا پیکچر باکس draw کنی ... بعد پنل رو با این روش جا به جا کنی مستقیم تو عکس بخوای جا به جا کنی کار سختیه ... هی باید با هر frame یه بار بیاد کل عکس رو draw کنه ... شما با روشی که گفتم کار کن تو لحظه ی ذخیره سازی عکس نهایی رو draw کن ...
دوست عزيز نميخوام دايره بكشم كه با كد نويسي دايره ايجاد شده كه در حال حركته ميخوام وقتي ماوس روش قرار گرفت بايسته و با ماوس اونو بكشم به يه طرفه ديگه ويه مربع دارم در سمت ديگه فرم كه در حال حركته وقتي دايره رو ول كردم بخوره به مربع و بتركه كد تركيدن هم نوشتم مونده كشيدنه دايره و ول كردنش..(مثل گيم انگري برد)
خب می دونید که شرط قرار گیری یک نقطه تو دایره اینکه فاصله اون نقطه از مرکز دایره کوچکتر از شعاعش باشه.به کد زیر نگاه کنید:
کد HTML:bool IsWithinCircle(int centerX, int centerY, int mouseX, int mouseY, double radius) { int diffX = centerX - mouseX; int diffY = centerY - mouseY; return (diffX * diffX + diffY * diffY) <= radius * radius; }
برای توقف کردن دایره هم از این تابع استفاده کنید زمانی که True بر می گردونه.
سوالی بود درخدمتم،اگه می تونید کداتونو بدید بیشتر بررسی کنم.