Crear una funcion que genere coordenadas aleatorias entre dos rectas

Dudas e ideas sobre los distintos e infinitos (:-)) algoritmos existentes.
Responder
Mensaje
Autor
Turonga
Mensajes: 3
Registrado: 29/04/2019 7:10 pm

Crear una funcion que genere coordenadas aleatorias entre dos rectas

#1 Mensaje por Turonga » 29/04/2019 7:19 pm

Necesito crear un funcion que me genere coordenadas aleatorias entre dos rectas. A partir de unas coordenadas dadas(negras), se incrementa las coordenadas en el eje Y hacia arriba y hacia bajo y crea una region. Necesito generar coordenadas aleatorias en esa region y que me generen un nuevo vector de coordenadas. Estoy trabado en este paso, no me llevo bien con la funcion rand48() para generar las coords flotantes.
Mas que nada estoy trabado en como llevar a cabo este ejercicio algoritmicamente, si primero deberia crear las coordenadas, luego comprobar si pertenecen a la region, o primero determinar la region y luego las coordenadas(seria lo logico) pero no sé como hacer este camino.
Adjuntos
coord.jpeg
coord.jpeg (106.73 KiB) Visto 481 veces

mollok
Mensajes: 526
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Crear una funcion que genere coordenadas aleatorias entre dos rectas

#2 Mensaje por mollok » 30/04/2019 6:27 am

El siguiente código se creará un número aleatorio tipo float alrededor de un punto 'y' que me interese. El rango, en este caso, es de 1 que irá desde y-0,5 a y+0,5. Si quieres otros rangos solamente cambia estos valores.

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main() {
    float my_y;
    for(int y = 0; y < 10; ++y) {
        /* De la siguiente forma obtendré un aleatorio que se acota a medio punto
         * por debajo del valor actual de y a medio punto por encima
         */
        
        // Con rand()%100 obtengo un número aleatorio desde 0 a 99
        my_y = rand() % 100;
        
        // Dividiendo por 100.0 lo convierto en un decimal desde 0 a 0,99
        my_y /= 100.0;
        
        // El rango es de 1 punto, así que se suma a 'y' pero restando 0,5 para que
        // vaya desde y - 0,5 a y + 0,5.
        my_y += y - 0.5;
        
        printf("%.2f\n", my_y);
    }
}
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

pikachu88
Mensajes: 6
Registrado: 04/12/2018 6:59 pm

suka

#3 Mensaje por pikachu88 » 26/03/2020 8:13 pm

A very interesting and meaningful forum, I really like your content. Thank you for sharing information. Find out about me here: powerline io

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados