From f95e0037b9d96ef02643bcb14949d94fa1db16f4 Mon Sep 17 00:00:00 2001 From: Stefan Jahn Date: Sun, 5 Feb 2023 00:10:10 +0100 Subject: [PATCH] Adjust simulation planet radius according resolution --- videodev-simulation.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/videodev-simulation.cc b/videodev-simulation.cc index 9473163..b72756c 100644 --- a/videodev-simulation.cc +++ b/videodev-simulation.cc @@ -55,8 +55,6 @@ int VideoDev_Simulation::Open() { if (inframe != NULL) Close(); -// conf_width = w; -// conf_height = h; conf_format = convert_from_pixelformat (V4L2_PIX_FMT_RGB24); simulation.SetResolution(conf_width, conf_height); @@ -119,10 +117,10 @@ int VideoDev_Simulation::CaptureStop() { * If something goes wrong return an error code. * Return code VDEV_STATUS_AGAIN is not an error. There was no video image ready to read. */ -#define SIMULATION_SIZE 15 +#define SIMULATION_SIZE 16 int VideoDev_Simulation::Grab(VideoFrame *vf) { - int posx, posy, x ,y; - double r, a, dsec; + int posx, posy, x ,y, r, radius; + double a, dsec; // try to match a speed of 20Hz dsec = get_cycletime(&lastframetv); @@ -131,7 +129,8 @@ int VideoDev_Simulation::Grab(VideoFrame *vf) { memset (inframe, 0x0, conf_width*conf_height*3); simulation.GetPos(&posx, &posy); - for (r = 1; r < SIMULATION_SIZE; r++) for (a = 0; a < M_PI * 2.0; a += 0.1) { + radius = conf_width * SIMULATION_SIZE / 1920; + for (r = 1; r < radius; r++) for (a = 0; a < M_PI * 2.0; a += 0.1) { x = posx + (sin(a) * r); y = posy + (cos(a) * r); if (x >= 0 && x < conf_width && y >= 0 && y < conf_height) { @@ -308,4 +307,3 @@ void Simulation::AxisStop() { axis[0].active = 0; axis[1].active = 0; } -