PDA

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



Reza,M
پنج شنبه 31 فروردین 1391, 12:35 عصر
با سلام
این کد برای رسم چند ضلعی است
#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.net تبدیل کردم ولی نمیدونم چرا جواب نمیده؟
فکر کنم از حلقه ها باشه

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 تابعی برای رسم خط است از اونایی که مطمئنم درست کار میکنه دیگه اینجا ننوشتمش