Ich habe X-Koordinaten x = {0,32,64, ... 256} und y = {2,6,4 ....}, ich werde den Graphen entlang x_y Achse zeichnen, dann ziehe ich den Punkt 128 auf 64 entlang der X-Achse, jetzt möchte ich die linke Seite des Punktes komprimiert und die rechte Seite vergrößert werden.Wie kann ich die Koordinaten des Graphen in C neu berechnen. Jede Hilfe wird geschätzt. Hier ist mein Code ...interaktive Kurve Zeichnung
int arr_x[]={32,64,96,128,160,192,224,256};
int arr_y[]={7,12,8,6,14,22,18,24};
int x1=64,x2=128; //drag x2 to x1
int min_val=abs(arr_x[0]-x2);
int idx=0;
for (int i = 1; i < 8; i++)
{
if ((abs(arr_x[i] -x2)) < min_val)
{
min_val = abs(arr_x[i] - x2);
idx = i;
}
}
float r;//ratio for compression and enlarge
if(x2>x1)
{
arr_x[idx]=x2;
r=(float)x2/x1;
for(int i=0;i<=idx;i++)
{
arr_x[i]=arr_x[i]*r;
}
for(int i=idx+1;i<8;i++)
{
arr_x[i]=arr_x[i]/r;
}
}
else
{
arr_x[idx]=x2;
r=(float)x1/x2;
for(int i=0;i<=idx;i++)
{
arr_x[i]=arr_x[i]*r;
}
for(int i=idx+1;i<8;i++)
{
arr_x[i]=arr_x[i]/r;
}
Was hast du schon gemacht? Was ist dein aktueller Algorithmus? –
@Alastair: finden Sie den Code oben ... –
@Javed: C# zum Zeichnen von Graph und C (Dll) zum Berechnen von Koordinaten –