المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : رسم دائرة برمجيا


ثامر أبو بلقيس
08-12-2015, 08:44 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

بدون مقدمات ... تريد رسم دائرة رياضيا مستغلا فيها معلوماتك
الرياضية لنحاول معا
======================================
افتح صفحة جديدة ... في هذا الكود تم افتراض قطر يساوي 8 cm
والمكان المخصص للرسم هو منتصف الصفحة
بمعنى المتغيرات المهمة في الكود فقط في هذا السطر
x, y, rad = v.Height/2, v.Width/2, 8*(100/6.3)
حيث x و y متعلقان بإحداثيات مكان رسم الدائرة
القيمة rad المتوافقة مع 8*(100/6.3)
رقم 8 فقط المعني بالتغيير و هو القطر الذي نريد
من خلاله رسم الدائرة
و ما كتب بعدها مقارنة يدوية بين مقاسات صفحة الاوتوبلاي
و المسطرة --------
بعد التطبيق بمكنك التأكد من المقاسات يدويا
على صفحة الاوتوبلاي بمسطرة عادية أي الرسم واقعي
========================================

الكـــــو د

v = Window.GetSize(Application.GetWndHandle());
tblLabelProps = {};
tblLabelProps.Text = ".";
tblLabelProps.FontName = "Arial";
tblLabelProps.FontSize = 20;
tblLabelProps.FontWeight = FW_BOLD;
x, y, rad = v.Height/2, v.Width/2, 8*(100/6.3)
for i = 1, 360 do
bel = i * math.pi / 180
X, Y = x + rad * math.cos( bel ), y +rad * math.sin( bel )
tblLabelProps.Y = X;
tblLabelProps.X = Y;
Page.CreateObject(OBJECT_LABEL, "NewObject"..i, tblLabelProps);
end

================================================== =======

كود مسح الدائرة المرسومــــة
for i = 1,360 do
Page.DeleteObject("NewObject"..i);
end

المحاولة كالعادة لا تتطلب منك ردودا موفق :abc_138:

ياسرهتهت
08-12-2015, 09:53 PM
بسم الله الرحمن الرحيم
ما شاء الله تبارك الرحمن
ابدع وتميز وعطاء
لاحدد له استاذي الفاضل
ابوبلقيس

بارك الله فيك وزادك علم على علم

تم التطبيق والملف المفتوح في المرفقات

من الواضح ان الكود يقوم برسم الدائر بوضع عدد من النقاط في مسافة ثابتة عن نقطة ثابتة هي مركز الصفحة
موفق بإذن الله ... لك مني أجمل تحية .
:abc_138::abc_138:

ثامر أبو بلقيس
08-12-2015, 10:00 PM
مرور طيب اخي ياسر بارك الله فيك على الملف المفتوح
سعدت بوصول المعلومة لك شكرا :abc_138:

عبد الهادي بهاب
08-12-2015, 10:14 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
المحاولة كالعادة لا تتطلب منك ردودا موفق :abc_138:

فكرة جميلة جدا و روعة ...........

بناءا عليه يمكن اضافة خاصية تحديد القطر و لون خط الدائرة .............

هذا مثال تطبيقي لكود الاستاذ مع اضافة خاصية اللون

http://up.top4top.net/downloadf-top4top_935017dcae1-rar.html


فيه افكار اخرى تطبيقية لهذا الكود الرائع ..........ان شاء الله نعمل عليها:abc_023::abc_023:

عبد الهادي بهاب
08-12-2015, 10:15 PM
بسم الله الرحمن الرحيم
ما شاء الله تبارك الرحمن
ابدع وتميز وعطاء
لاحدد له استاذي الفاضل
ابوبلقيس

بارك الله فيك وزادك علم على علم

تم التطبيق والملف المفتوح في المرفقات

من الواضح ان الكود يقوم برسم الدائر بوضع عدد من النقاط في مسافة ثابتة عن نقطة ثابتة هي مركز الصفحة
موفق بإذن الله ... لك مني أجمل تحية .
:abc_138::abc_138:


شكرا استاذ ياسر على الملف شكرا جزيلا

ثامر أبو بلقيس
08-12-2015, 10:42 PM
متوقع منك ملف مميز أخي المحترف لترسيخ ما نصل إليه .. بارك الله فيك
:abc_138:شكرا جزيـــــلا :abc_138:
جيد لو تكون الفكرة البسيطة إنطلاقة لأعمال مميزة لذلك قد
تراودك أفكار مشابهة تعنى بالتطبيقات الهندسية و تزويد المتعلمين ببرمجيات تعليمية موفق :abc_138:

azizsoft
08-12-2015, 11:33 PM
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

مبدع دوما يا أستاذ

جزاكم الله خيرا ونفع بكم :abc_022:

عبد الهادي بهاب
08-12-2015, 11:33 PM
متوقع منك ملف مميز أخي المحترف لترسيخ ما نصل إليه .. بارك الله فيك
:abc_138:شكرا جزيـــــلا :abc_138:
جيد لو تكون الفكرة البسيطة إنطلاقة لأعمال مميزة لذلك قد
تراودك أفكار مشابهة تعنى بالتطبيقات الهندسية و تزويد المتعلمين ببرمجيات تعليمية موفق :abc_138:


شكرا استاذ و منكم نتعلم

هذه فكرة تحتاج الى تعديل

-------------------- رسم مربع برمجيا -----------------

ضع انبوت input1 خاص بطول ضلع المربع
:abc_012::abc_012:------- يفضل ان تعطيه قيمة اكبر من 50 حتى يظهر -----:abc_088::abc_088:

ضع انبوت اخر input2 خاص بمواقع المربع في الصفحة
:abc_012::abc_012:--------- اجعلها 50 او اكثر حتى كون في منتصف الصفحة --------:abc_088::abc_088:

ضع في زر هذا الكود


qtr = String.ToNumber(Input.GetText("Input1")); ---------- طول الضلع
-----------------------------------
pos = String.ToNumber(Input.GetText("Input2"));--------مكان المربع في الصفحة
-----------------------------------
for i = 1, qtr+pos do ------------- مسح المربع السابق
Page.DeleteObject("NewObject"..i);
Page.DeleteObject("NewObjec"..i);
Page.DeleteObject("NewObje"..i);
Page.DeleteObject("NewObj"..i);
end
-------------------------------------انشاء نقطة---------------------
v = Window.GetSize(Application.GetWndHandle());
tblLabelProps = {};
tblLabelProps.Text = ".";
tblLabelProps.FontName = "Arial";
tblLabelProps.FontSize = 20;
tblLabelProps.FontWeight = FW_BOLD;
-----------الضلع العلوي-------
for i = pos, qtr+pos do
X = i
Y = pos
tblLabelProps.Y = X;
tblLabelProps.X = Y;
Page.CreateObject(OBJECT_LABEL, "NewObject"..i, tblLabelProps);
end
------------الضلع الايمن-------
for p = pos, qtr+pos do
X = pos+qtr
Y = p
tblLabelProps.Y = X;
tblLabelProps.X = Y;
Page.CreateObject(OBJECT_LABEL, "NewObjec"..p, tblLabelProps);
end
----------الضلع السفلي---------
for t = qtr+pos, pos, -1 do
X = t
Y = pos + qtr
tblLabelProps.Y = X;
tblLabelProps.X = Y;
Page.CreateObject(OBJECT_LABEL, "NewObje"..t, tblLabelProps);
end
-----------الضلع الايسر----------
for r = qtr+pos, pos, -1 do
X = pos
Y = r
tblLabelProps.Y = X;
tblLabelProps.X = Y;
Page.CreateObject(OBJECT_LABEL, "NewObj"..r, tblLabelProps);
end
------------------------------



بالتوفيق :abc_022::abc_022::abc_022:

عبد الهادي بهاب
08-12-2015, 11:54 PM
لرسم مثلث قائم برمجيا

دائما ضع 2 من الانبوت الاول لطول ضلع المثلث و الثاني لمكانه في الصفحة
في زر ارزع هذا الكود :


q = String.ToNumber(Input.GetText("Input1")); ---------- Øæá ÇáÖáÚ
-----------------------------------
p = String.ToNumber(Input.GetText("Input2"));--------ãßÇä ÇáãÑÈÚ Ýí ÇáÕÝÍÉ

s = q+p
-----------------------------------
for i = 1, s do ------------- ãÓÍ ÇáãÑÈÚ ÇáÓÇÈÞ
Page.DeleteObject("NewObject"..i);
Page.DeleteObject("NewObjec"..i);
Page.DeleteObject("NewObje"..i);
Page.DeleteObject("NewObj"..i);
end
-------------------------------------ÇäÔÇÁ äÞØÉ---------------------
v = Window.GetSize(Application.GetWndHandle());
tblLabelProps = {};
tblLabelProps.Text = ".";
tblLabelProps.FontName = "Arial";
tblLabelProps.FontSize = 20;
tblLabelProps.FontWeight = FW_BOLD;
-------ÇáÖáÚ ÇáÇæá-------
for i = p, s do
X = i
Y = i
tblLabelProps.Y = X;
tblLabelProps.X = Y;
Page.CreateObject(OBJECT_LABEL, "NewObject"..i, tblLabelProps);
end
--------ÇáËÇäí-------
for n = s, p , -1 do
X = n
Y = p
tblLabelProps.Y = X;
tblLabelProps.X = Y;
Page.CreateObject(OBJECT_LABEL, "NewObjec"..n, tblLabelProps);
end
---------ÇáËÇáË---------
for t = s, p, -1 do
X = s
Y = t
tblLabelProps.Y = X;
tblLabelProps.X = Y;
Page.CreateObject(OBJECT_LABEL, "NewObje"..t, tblLabelProps);
end
------------------------------
بالتوفيق ------ :abc_152::abc_152:

ياسرهتهت
09-12-2015, 12:08 AM
بسم الله الرحمن الرحيم
عمل رائع اخي المحترف
بارك الله فيك

اريد خط مستقيم بين نقطتان معلومة الاحدثيات

موفق بإذن الله ... لك مني أجمل تحية .

:abc_152::abc_152:

عبد الهادي بهاب
09-12-2015, 12:23 AM
بسم الله الرحمن الرحيم
عمل رائع اخي المحترف
بارك الله فيك

اريد خط مستقيم بين نقطتان معلومة الاحدثيات

موفق بإذن الله ... لك مني أجمل تحية .

:abc_152::abc_152:

اجابة على السريع ........... في كود المربع ..........
اختر فقط الضلع العلوي فهو يفي بالغرض باعتبار نقطة البداية هي الموقع و طول المستقيم هو الاحداثية الثانية .........
مدام لم يتغير احداثيات y فهو سهل

اذا اردته مائل خذ كود الضلع الاول من كود المثلث القائم ............

اذا اردت قوس فقط فخذ كود الدائرة و انقص عدد 360 الى 150 مثلا اي دائرة غير مكتملة

طبعا يمكن الدمج بينها من اجل كود مثلا الامواج في البحر ......
او نافذة بها مثلثات ..........
او لرسم منزل بسيط جدا بمدفئة ........
او سيارة بعجلات ..........الخ
----------
من اجل التمرين : كود يرسم لنا هذا الشكل

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUsI5t-qwYoIkIPjZJwc-8ub1MdphaJbl2C6wR_E2D1CpaDlb-

ثامر أبو بلقيس
09-12-2015, 06:06 PM
بسم الله الرحمن الرحيم
اريد خط مستقيم بين نقطتان معلومة الاحدثيات
:abc_152::abc_152:

سأبحث لك من داخل الجهاز لدي ملفات متعلقة بهذا الشأن

برجاء ما المقصود باحداثبات معلومة هل تقصد نقطتين أو عنصرين على صفحة المشروع

أم الاحداثبات هي معطيات فقط :abc_138:

ياسرهتهت
09-12-2015, 07:33 PM
سأبحث لك من داخل الجهاز لدي ملفات متعلقة بهذا الشأن

برجاء ما المقصود باحداثبات معلومة هل تقصد نقطتين أو عنصرين على صفحة المشروع

أم الاحداثبات هي معطيات فقط :abc_138:
--------------------------------------------------------------
اقصد عنصرين
:abc_152:

ثامر أبو بلقيس
09-12-2015, 08:36 PM
السلام عليكم ورحمة الله وبركاته
سأعدل لك على احدى الملفات

في global functions اكتب
function DrawL2R(fX,fY,tX,tY)
mX = tX - fX;
mY = tY - fY;
if mY > mX then base = mY else base = mX end
lblDefault = Label.GetProperties("lblGraph1")
wX=fX; wY=fY
while wX < tX do
wX = wX + (mX / base)
wY = wY + (mY / base)
Page.CreateObject(OBJECT_LABEL, "lblGraph"..x, lblDefault)
Label.SetPos("lblGraph"..x, wX, wY);
Label.SetVisible("lblGraph"..x, true);
x=x+1;
end
end


==============================================
ضع في النجميعية عنصري Label كلا منهما مكتوب فيه نقطة
==============================================

كود الرسم
props = Label.GetProperties("lblGraph1")
props.ColorNormal = Math.HexColorToNumber("0000FF")
Label.SetProperties("lblGraph1", props)
belkiss = Label.GetPos("Label1");
belkiss2 = Label.GetPos("Label2");
DrawL2R(belkiss.X,belkiss.Y,belkiss2.X,belkiss2.Y)


موفق :abc_138:

ملاحظة وضع كل عنصر على المحاور

لا يهم تواجد من حيث المكان فقط الانتباه لوضع الانبوت الأول

ثامر أبو بلقيس
10-12-2015, 04:41 PM
طبعا الاكواد لن تعمل ........ لأنه ببساطة نسيت جملة لم أكتبها طبعا ليست كود بل جملة
-----------------------------------------
اكتشفها و موفق :abc_138:

أبو يوسف
10-12-2015, 06:17 PM
نعاون مثمر فبارك الله فيكم جميعا :abc_028:

عبدوعزيز
21-12-2015, 10:03 AM
مشكووووووووووور

محمد سامر
11-08-2016, 11:54 PM
موفق بإذن الله ... لك مني أجمل تحية . :abc_022:

عبد الهادي بهاب
22-05-2017, 10:52 PM
طبعا الاكواد لن تعمل ........ لأنه ببساطة نسيت جملة لم أكتبها طبعا ليست كود بل جملة
-----------------------------------------
اكتشفها و موفق :abc_138:

هل ممكن تحديد قيمة X

x=1

جمال سات
15-05-2020, 04:49 PM
عمل رائع اخي

فهد الشيخ
18-06-2020, 05:35 PM
مشكوووووور

المبرمج القادم
23-01-2021, 02:53 PM
:abc_052: شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .