PDA

View Full Version : مشکل این کد چیه؟



Reza,M
پنج شنبه 31 فروردین 1391, 00:25 صبح
با سلام
کد زیر با زبان C برای رسم چند ضلعی است


#include<conio.h>
#include<math.h>
#include<graphics.h>
void polygon2(int xc, int yc, int radius, double angle, int sides);
void BLA(int x1,int y1,int x2,int y2);
void Swap(int *,int *);
void main()
{
clrscr();
int driver=DETECT,mode=0;
initgraph(&driver,&mode,"");
int x0,y0;
x0=getmaxx()/2;
y0=getmaxy()/2;
for(int i=0;i<=360;i+=20)
polygon2(x0,y0,200,i,6);
getch();
closegraph();
}
void polygon2(int xc, int yc, int radius, double angle, int sides) {
int i;
double ang = 360/sides;
double radian = 180/M_PI;
int points_x[20];
int points_y[20];
for(i=0; i<sides; i++)
{
points_x[i] = xc + ceil(radius * cos(angle/radian));
points_y[i] = yc + ceil(radius * sin(angle/radian));
angle = angle+ang;
}
for(i=0; i<sides-1; i++)
BLA(points_x[i], points_y[i], points_x[i+1], points_y[i+1]);
BLA(points_x[i], points_y[i], points_x[0], points_y[0]);


من اونو به vb تبدیل کردم ولی چرا جواب نمیده
بنظرم مشکل از حلقه ها باشه


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x0, y0 As Integer
x0 = 100
y0 = 200
Dim i As Integer
For i = 0 To 360 Step 20
Call Draw_Polygon(x0, y0, 50, i, 6)
Next
End Sub
Private Sub Draw_Polygon(ByVal Xc As Integer, ByVal Yc As Integer, ByVal Radius As Integer, ByVal Rotate As Integer, ByVal Sides As Integer)
Dim i, j As Integer
Dim Angel As Double = 360 / Sides
Dim Radian As Double = (Angel * PI) / 180
Dim Points_X(20), Points_Y(20) As Integer
'Me.Text = " Xc =" & Xc & " YC =" & Yc & " Radius =" & Radius & " Rotate =" & Rotate & " Sides =" & Sides
For i = 0 To i < Sides
Points_X(i) = Xc + Fix(Radius * Cos(Rotate / Radian))
Points_Y(i) = Yc + Fix(Radius * Sin(Rotate / Radian))
Rotate = Rotate + Angel
Next
For j = 0 To i < Sides - 1
BLA(Points_X(j), Points_Y(j), Points_X(j + 1), Points_Y(j + 1))
BLA(Points_X(j), Points_Y(j), Points_X(0), Points_Y(0))
Next
End Sub

{ BLA یک تابع برای رسم اضلاع است که دیگه چون مطمئنم درست کار میکنه اینجا ننوشتمش}

zaeimh90
پنج شنبه 31 فروردین 1391, 20:47 عصر
خوب عزیز کد BLA هم بزار ببینم مشکلش چیه.

Reza,M
جمعه 01 اردیبهشت 1391, 00:49 صبح
خوب عزیز کد BLA هم بزار ببینم مشکلش چیه.

دوست من فرض کن متد Line فراخوانی میشه

hakim22
جمعه 01 اردیبهشت 1391, 10:17 صبح
خب به چه مشکلی برخورد می کنه !؟
اشکال محاسباتی داره یا خطا یا نتیجه درست در نمیاد!!!؟

zaeimh90
جمعه 01 اردیبهشت 1391, 14:36 عصر
عزیز بخاطر همین میگم تمام کد رو بذار.
که ما هم اجرا کنیم ببینیم مشکلش چیه.
یا میخوای اصلا کل پروژتو بفرست. هرجوری که راحت تری.
اونجوری که من نگاه کردم مشکلی نداشت. حتی forها هم درست بود.باید اشکال جای دیگه ای باشه.