Archived
Работы по программированию
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
26.Аналогично заданию 25, но в файл «singood.txt» записать экранные координаты (x,y).
|
||||
Для этого следует учесть:
|
||||
* масштабирование по оси ОХ = 50, по оси ОУ = 40
|
||||
* начало экранных координат установлено в точке (320, 240)
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
#define M_PI 3.14159265358979323846
|
||||
|
||||
void writeXY()
|
||||
{
|
||||
FILE *file = fopen("singood.txt", "w");
|
||||
if (file == NULL)
|
||||
{
|
||||
printf("Error open\n");
|
||||
return;
|
||||
}
|
||||
|
||||
double a = 0;
|
||||
double b = 2 * M_PI;
|
||||
double h = 0.1;
|
||||
|
||||
double scale_x = 50;
|
||||
double scale_y = 40;
|
||||
double offset_x = 320;
|
||||
double offset_y = 240;
|
||||
|
||||
for (double x = a; x <= b; x += h)
|
||||
{
|
||||
double y = sin(x);
|
||||
fprintf(file, "%f %f\n", x, y);
|
||||
|
||||
double x_screen = x * scale_x + offset_x;
|
||||
double y_screen = -y * scale_y + offset_y;
|
||||
fprintf(file, "%f %f\n", x_screen, y_screen);
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
writeXY();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user