help migracao para o object pascal

27/10/2003

0

pessoal,
eu nao sei c muito bem e estou com dificuldade em passar este algoritmo escrito em c para o object pascal.
Algoritmo para preenchimento de polígonos.
#include <stdlib.h>
define MAX 100
/* declaração de funções: */
void Ordenaxmin(int p, float xi[], int ymin[], int ymax[], float m[]);
void horizontal(int x0, int x1, int y);
int round(float x);
/* rotina para preenchimento de polígonos*/
void fillrea(int nv, int x[], int y[])
{ int YMIN, YMAX, yi, ymin[MAX], ymax[MAX], i, j, p =0;
float xi[MAX], m[MAX];
char par, MASK = 1;
YMIN = YMAX = y[0];
i = nv – 1;
for(j=0;j<nv;j++){
if (y[j] > y[i]){
ymin[p]=y[i];
ymax[p]=y[j];
xi[p]=xi[i];
m[p]=(float)(x[j]-x[i])/(y[j]-j[i]);
p++}
else
if (y[i] > y[j]){
ymin[p]=y[j];
ymax[p]=y[i];
xi[p]=xi[j];
m[p]=(float)(x[i]-x[j])/(y[i]-j[j]);
p++}
i = j;
}
for (yi=YMIN;yi<YMAX;yi++){
ordenaxmin(p,xi,ymin,ymax,m);
par = 0;

for(j=0;j<p;j++){
if(yi >= ymin[j] && yi < ymax[j]){
if (!par)
i=j;}
else{
horizontal(round(xi[i]),round(xi[j]),yi);
xi[i] = xi[i] + m[i];
xi[j] = xi[j] + m[j];
par = MASK^par;}
}
}
}
void horizontal(int xo,int x1,int y)
{ int x;
for(x = x0;x0<= x1;x++)
writepixel(x,y,interior_color);
}
caso alguem poder ajuida-me muito obrigado
foi


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar