آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ترسیم دایره

amirhossein1376  12 سال پیش  12 سال پیش
0 0

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

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

+1 0
ویدیو custom control باران رو یک بار دیگه ببینید کلیت کار دستتون میاد دیگه بقیش خلاقیت و نو آوری خودتون هست روی الگوریتمش یه کم فکر کنید فکر نکم زیاد سخت باشه بهتره اول خودت تلاش کنی اگر نتونستی بعد مشکلات رو اینجا بگو تا دوستان کمکت کنند از همین اول خودت رو تنبل نکن دنبال سورس آماده نباش موفق باشی (12 سال پیش)
0 0
دوست من، تصحیحات، نظر ها، خواهش رو در سئوال یا در نظر مربوط به سئوال یا جواب درج کنید. متأسفانه پاسخ های بین آ بین شما که به عنوان جواب درج شده بود را حذف کردم. (12 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
mahdak  12 سال پیش
+2 0

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

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

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

پاسخ به سوال 
sadeghbarout  12 سال پیش
+3 0

دوست عزیز این چیزی که میخوای یه کار خلاقانه است و باید یه ساعتی روش فکر کنی تا کامل بتونی بنویسیش . فکر نکنم کسی اینجا حال داشته باشه 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 رو رسم کنی


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