PDA

View Full Version : طرز نوشتن برنامه رسم لوزی



parham_pni
جمعه 03 اردیبهشت 1389, 16:02 عصر
برنامه ای که شامل لوزی تو پر و لوزی تو خالی شود؟(با حلقه for

xxxxx_xxxxx
جمعه 03 اردیبهشت 1389, 17:38 عصر
این کار با استفاده از توابع سینوسی و کسینوسی انجام میشه.
توی حلقه هر نقطه ای رو که با مختصات Sin(x) , Cos(x)z رسم کنید میشه یک نقطه از دایره (x شمارنده حلقه هست). برای تنظیم شعاع دایره هم به توابع فوق یک ضریب عددی بدید. طبیعتاً برای رسم بیضی باید ضرایب یکسان نباشند.

موفق باشید.

<درخواست برنامه/انجام تمرین درسی ممنوع است>

مصطفی ساتکی
جمعه 03 اردیبهشت 1389, 22:50 عصر
حاجی کجارو گرفتی لوزی رو میگه. تا فرمول بیضی اونی نیست که شما می گی .ریاضی کار کن.
اگر نقاط متوالی باشن بینشون خط رسم کن اگر گفته با for باشه بایستی هر line رو دستی رسم کن.یعنی خودت رسم خط بنویسی اگه گرافیک پاس کردی

xxxxx_xxxxx
شنبه 04 اردیبهشت 1389, 05:23 صبح
Oops!
عجب سوتی ای دادم :D
فکر کردم در مورد بیضی پرسیده بودند:گیج:

m.developer
یک شنبه 05 اردیبهشت 1389, 23:04 عصر
اين يه نمونه كه با matlab نوشته شده
اميدوارم به دردت بخوره
در نرم افزار مطلب يه فايل ايجاد كن و در فايل اين كد رو بنويس

function Ellipse(xp,yp,x,y,r1,r2)
mat=ones(xp,yp);
for i=1:360
a=x+r1*cos(i);
b=y+r2*sin(i);
mat(fix(a),fix(b))=0;
end
imshow(mat)


بعد در صفحه اصلي نام تابع رو با ورودي هاي دلخواه فراخواني كن
موفق باشي

مصطفی ساتکی
دوشنبه 06 اردیبهشت 1389, 09:32 صبح
یه خورده دقت کن بعد تاپیک بزن .اون میگی لوزی تو میگی بیضی.
این بیضی هم که رسم کردی دورنیابی نشده.روش های مختلف دورنیابی داریم که Spline هم یکی از این موارده

dousti_design
دوشنبه 06 اردیبهشت 1389, 09:44 صبح
برنامه ای که شامل لوزی تو پر و لوزی تو خالی شود؟(با حلقه for
برای این کار نمیشه تابعی تعریف کرد پس باید دستی بکشید دیگه. اگه بشه درجه رو حساب کرد میشه با تغییر درجه هم نوشت.(متغیر for به عنوان درجه ای که خط با محور x ها میسازه قرار بدید). درواقع اگه شیب معلوم باشه میشه. ولی اگه هم اینطوری نشد دستی راحته.
موفق باشید!

parham_pni
دوشنبه 06 اردیبهشت 1389, 14:44 عصر
بچه ها گرافیکی نه .مثلا می گم با ستاره(*) لوزی درست بشه.بعد داخل borland C++‎ میخوام ببینم چطوریه؟؟

dousti_design
دوشنبه 06 اردیبهشت 1389, 15:13 عصر
بچه ها گرافیکی نه .مثلا می گم با ستاره(*) لوزی درست بشه.بعد داخل borland C++‎‎‎ میخوام ببینم چطوریه؟؟


const int n = 50;
int k = 1; int k2 = n/2; int k3=0;
for (int i = 0; i < n; i++)
{
if (k < (n / 2))
k3 = k;
else
k3 = k2;
for (int j = 0; j < k3; j++)
label1.Text += "*";
label1.Text += "\n\r";
if (k < (n / 2))
k++;
else
{

k2--;
}
}

منبع: دست نوشته های یک برنامه نویس (http://fa.dousti.com/?tag=%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C)
همه چیز مشخصه. توضیح بدم؟؟؟

parham_pni
دوشنبه 06 اردیبهشت 1389, 16:05 عصر
[QUOTE=dousti_design;962633]

const int n = 50;
int k = 1; int k2 = n/2; int k3=0;
for (int i = 0; i < n; i++)
{
if (k < (n / 2))
k3 = k;
else
k3 = k2;
for (int j = 0; j < k3; j++)
label1.Text += "*";
label1.Text += "\n\r";
if (k < (n / 2))
k++;
else
{

k2--;
}
}

منبع: دست نوشته های یک برنامه نویس (http://fa.dousti.com/?tag=%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C)
همه چیز مشخصه. توضیح بدم؟؟؟[/Q
عزیز من اینو می نویسم
#include<iostream>
#include<conio>
main()
{ const int n=50;
int k=1;
int k2=n/2;
int k3=0;
for(int i=0;i<n;i++)
{
if(k<(n/2))
k3=k;
else
k3=k2;
}
for(int j=0;j<k3;j++)
{ label1.Text += "*";
label1.Text += "\n\r";
if(k<(n/2))
k++;
else
k2--;
}
getch();
return 0;
}
دوست خوبم واقعا ممنون ولی این error رو میده:'

undifined symbol 'label1
چی کار کنم؟:ناراحت:

dousti_design
دوشنبه 06 اردیبهشت 1389, 16:11 عصر
این برنامه رو با سی شارپ نوشتم(کامپایلر c++ دم دست ندارم)
آخه اینجا بخش الگوریتم و معمولا فقط الگوریتم رو ارائه میدن با شبه کد و زبان مشخصی مد نظر نیست.
باید یا توی سی شارپ اجرا کنید یا اینکه تبدیلش کنید. تبدیلش هم خیلی راحته:


const int n = 40;
int k = 1; int k2 = n/2; int k3=0;
for (int i = 0; i < n; i++)
{
if (k < (n / 2))
k3 = k;
else
k3 = k2;
for (int j = 0; j < k3; j++)
cout<<"*";
cout<<endl;
if (k < (n / 2))
k++;
else
{

k2--;
}
}

موفق باشید.

parham_pni
دوشنبه 06 اردیبهشت 1389, 18:25 عصر
این برنامه رو با سی شارپ نوشتم(کامپایلر C++‎‎‎‎‎‎‎ دم دست ندارم)
آخه اینجا بخش الگوریتم و معمولا فقط الگوریتم رو ارائه میدن با شبه کد و زبان مشخصی مد نظر نیست.
باید یا توی سی شارپ اجرا کنید یا اینکه تبدیلش کنید. تبدیلش هم خیلی راحته:


const int n = 40;
int k = 1; int k2 = n/2; int k3=0;
for (int i = 0; i < n; i++)
{
if (k < (n / 2))
k3 = k;
else
k3 = k2;
for (int j = 0; j < k3; j++)
cout<<"*";
cout<<endl;
if (k < (n / 2))
k++;
else
{

k2--;
}
}

موفق باشید.
عزیز این برنامه سمت راست لوزی رو فقط چاپ کرد یعنی اینطوری(n=5)

*
**
***
****
*****
****
***
**
*
طرف دیگشو چی کار کنم؟

mohsen_arab
شنبه 26 تیر 1389, 19:46 عصر
با سلام
یک سوال در مورد برنامه matlab داشتم:
1-چه جوری می توان در برنامه Matlab مختصات نقاطی را که در روی دایره به یک فاصله هستند را به دست آورد :
مثلا با گرفتن عدد K برنامه به ما مختصات k تا نقطه ای را بدهد که روی دایره به فاصله های مساوی از هم قرار دارند (به طوری که از اتصال نقاط متوالی به هم یک چند ضلعی منتطم به وجود آید)
2- با داشتن معادله دو خط چه جوری می توان نقطه مشترک بین آن دو را به دست آورد؟


ایمیل من :
aseman_abi123@yahoo.com

paria95
پنج شنبه 15 خرداد 1393, 22:53 عصر
سلام
رسم لوزی تو پر و توخالی چطوری میشه باروش زیر.
من نصفه لوزی رو اینطور نوشتم:



function DrawNesfeLozi(n)

for row=1:n-1
for col=1:row
fprintf('*');
end
fprintf('\n');
end

for r=n-1:-1:0
for c=r+1:-1:1
fprintf('*');
end
fprintf('\n');
end
fprintf('\n');

end



فقط لطفن زود جواب بدید امتحانشو دارم:افسرده: