بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ترسیم دایره

مدیریت گفتگو
amirhossein1376 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام ببخشید که اینو میگم من زیاد جاوا بلد نیستم تازه برنامه نویسی رو شروع کردم و به این مورد شدیدا نیاز دارم.من  میخوام یه دایره تو صفحه ی داشته باشم حالا میخوام یه دایره دیگه (به اندازه نقطه)روی اون دایره بزرگ تو هربار تاچ دکمه به اندازه 1 سی ام محیط جابجا شه و در نهایت دو باره برگرده سر جاش  

فقط شدیدا نیاز دارم ممنون

نظرات

javac 12 سال پیش
ویدیو custom control باران رو یک بار دیگه ببینید کلیت کار دستتون میاد دیگه بقیش خلاقیت و نو آوری خودتون هست روی الگوریتمش یه کم فکر کنید فکر نکم زیاد سخت باشه بهتره اول خودت تلاش کنی اگر نتونستی بعد مشکلات رو اینجا بگو تا دوستان کمکت کنند از همین اول خودت رو تنبل نکن دنبال سورس آماده نباش موفق باشی
uncocoder 12 سال پیش
دوست من، تصحیحات، نظر ها، خواهش رو در سئوال یا در نظر مربوط به سئوال یا جواب درج کنید. متأسفانه پاسخ های بین آ بین شما که به عنوان جواب درج شده بود را حذف کردم.

پاسخ‌ها 2

mahdak 12 سال پیش

می تونین از تابع رسم دایره در canvas استفاده کنید.

Canvas canvas;
canvas.drawCircle(cx, cy, radius, paint);

که با متغیر تعریف کردن cx و cy می تونین در هر بار کلیک, نقطه ی جدیدی برای ترسیم مجدد دایره تعیین کنید

نظرات

sadeghbarout 12 سال پیش

دوست عزیز این چیزی که میخوای یه کار خلاقانه است و باید یه ساعتی روش فکر کنی تا کامل بتونی بنویسیش . فکر نکنم کسی اینجا حال داشته باشه 1 ساعت سر یه همچین چیزی وقت بذاره. ولی راهنماییت میکنم حالا اگه کسی برات سورس گذاشت که چه بهتر اگه هم نذاشت که همین رو بگیری بری جولو بهش مبرسی ;)

ببین 2 راه داری:

1- یکی اینکه برای دایره بزرگ و کوچیک از 2 تا imageview استفاده کنی و با روش زیر مختصات X , Y ی که باید اون دایره کوچیک بره رو پیدا کنی

2- اینکه از custome control ها استفاده کنی و همونجور که mahdak  گفت با استفاده از canvas رسمشون کنی

اما برای مختصات اون دایره کوچیک (مثلا برای 1/30 ام جابجایی روی دایره )  به این شکل عمل کنی :

        double theta = current * 360 / count * Math.PI / 180;
        double i = Math.cos(theta);
        double j = Math.sin(theta);

        int x = (int) (Double.parseDouble("" + Math.round(radius * i)));
        int y = (int) (Double.parseDouble("" + Math.round(radius * j)));

که counter شماره n امین کلیک ته 
count همون 30 میشه

به این ترتیب مختصات x,y که مختصات جدید توپ ته بدست میان و حالا دیگه با کد های مربوط باید اون imageview رو جابجا کنی و یا اون canvas رو رسم کنی

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .