رفتن به مطلب
  • 0

ساخت کیبورد شبیه بازی آمیرزا


میلاد

سوال

سلام / کسی اینو ساخته یا راه حلی داره واسش ؟

آ��رزا

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در 7 ساعت قبل، میلاد گفته است :

سلام / کسی اینو ساخته یا راه حلی داره واسش ؟

آ��رزا

 

 

سلام

منظورتان خط منحنی یا Curve line هست؟با کتابخانه AcceleratedSurface می تونید خطوط منحنی رو رسم کنید.

 

با فرمول زیر هم میتونید ((فاصله بین دو کلمه))((یا فاصله بین کلمه اول و محل تاچ کردن کاربر)) رو پیدا کنید و روی اون مانور بدین ،یعنی بین نقطه اول حرکت که  ثابته و بین نقطه دوم حرکت که متحرکه ،بعدش حین تاچ کردن با AcceleratedSurface منحنی موردنظر رو بااین مختصات رسم کند

 

 

' یافتن مقدار فاصله بین دو محل و دونقطه
Sub fasele_beine_do_nogte_safhe(X1 As Double, Y1 As Double, X2 As Double, Y2 As Double) As Double
	Dim fasele2nogte As Double
	'فاصله بین دو نقطه  - x^2 = power(x,2)
	fasele2nogte= Sqrt(Power((X1 - X2) , 2) + Power((Y1 - Y2) , 2))
	Return fasele2nogte
End Sub

 

یا از کتابخانه  ترسیم نمودار منحنی مثل GoogleCharts  وامثالهم هم میتونید جهت رسم خط منحنی بین کلمات  استفاده کنید

 

image.png.0832acc0a6db973b4b29878ab6cee72f.pngimage.png.948d88d6be06ef1ab15e1581f8c4e934.png

از روشها و الگوریتم ها داخل نمونه سورسهای زیر هم میتونید برای کارتان کمک بگیرید:

AcceleratedSurface.zip

Rasm_khatha.zip

DrawPanel.zip

bezier.zip (این سورس هم برای رسم خطوط منحنی عالیه  )

* قابل توجه سایر دوستان انجمن این سورس bezier به درد ((امضاء الکترنیکی لمسی )) هم میخوره و باهاش شکل امضاء افراد رو میتونید با تاچ انگشتی روی صفحه ، توی سیستم ترسیم نماییدوذخیره کنید و بعدا مقایسه کنید .

video.gif.acf743b06e6b099dfa4cbd60d092e92d.gif

 (Android Code Snippet - Bezier curve | B4X Community - Android, iOS, desktop, server and IoT programming tools)

ezgif.com-video-to-gif.gif.0c4bced72b8c3b35251e878f84bcc54f.gif

 

اینها هم ((فرمول ترسیم خط)) و ((فرمول ترسیم دایره)) هست که باکمی تغییر میتونید از اونها هم استفاده کنید و شاید به درد بخوره :

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("Layout1")
	Dim bc As BitmapCreator
	bc.Initialize(100%x, 100%y)
	bc.DrawCircle(100dip, 100dip, 50dip, xui.Color_Red, True, 10dip)
	Activity.SetBackgroundImage(bc.Bitmap)
End Sub
'''فرمول ترسیم دایره 
Private Sub DrawCircleEmpty(bc As BitmapCreator, x As Int, y As Int, Radial As Int , BorderColor As Int)
	Dim X1 As Double = X + Radial * CosD(0)
	Dim Y1 As Double = Y + Radial * SinD(0)
  
    For i=1 To 720
		Dim X2 As Double = X + Radial * CosD(i/2)
		Dim Y2 As Double = Y + Radial * SinD(i/2)
        Drawline(bc,X1,Y1,X2,Y2,BorderColor)
        X1 = X2
        Y1 = Y2
    Next
End Sub
'''فرمول ترسیم خط بین دو نقطه 
Private Sub Drawline(bc As BitmapCreator, x1 As Int, y1 As Int, x2 As Int, y2 As Int, Color As Int)
	Dim Dx,Dy,Diff As Int
	Dim x,y As Float
 
	Dx = x2 - x1
	Dy = y2 - y1
	Diff=Max(Abs(Dx),Abs(Dy))
	For D=0 To Diff
		x= x1 + Dx*D/Diff
		y = y1 + Dy*D/Diff
		If (x>=0 And x<bc.mWidth) And (y>=0 And y<bc.mHeight) Then bc.SetColor(x,y,Color)
	Next
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 8 ساعت قبل، میلاد گفته است :

سلام / کسی اینو ساخته یا راه حلی داره واسش ؟

آ��رزا

 

 

سلام. داداش بیا این تایپک . شاید با هم تونستیم مشکل رو حل کنیم. 

اینجا رو کلیک کن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...