Problema con la vista de pájaro o la representación 2.5D del mapa
Estoy desarrollando un software de navegación paso a paso y estoy usando la siguiente solución para convertir mis líneas de carreteras en 2.5D o Vista 3D
Dibuje 2.5D o mapa 3D con C # de líneas
Sin embargo, la solución anterior está bastante bien para líneas dentro del puerto de vista que es 0 <x <ancho y 0 <y <alto. Sin embargo, hay líneas en las que sus puntos pueden tener y <0 o x <0 o y> alto o x> ancho y luego la solución anterior se volvió loca. ¿Alguien podría ayudarme a descubrir cómo resolver el problema?
vvvv Con algoritmo 3D vvvv
.
vvvv Sin algoritmo 3D vvvv
Actualización :: Después de usar este código
double x = p->x();
double y = p->y();
double t = -0.5;
x = x - w / 2;
y = y - h / 2;
double a = h / (h + y* sin(t));
double u = a * x + w / 2;
double v = a * y * cos(t) + h / 2;
p->setX(u);
p->setY(v);
return p;
El mapa se vuelve como seguir
Creo que hay algo mal con los cálculos de Y cuando van mucho más allá de los valores negativos. Estoy usando Qt y las grietas en la línea parecen fallar con el renderizador de Qt, no relacionado con nuestro problema original.