Problema com a vista aérea ou a renderização 2.5D do mapa
Estou desenvolvendo um software de navegação passo a passo e estou usando a solução a seguir para transformar minhas linhas de estradas em Vista 2.5D ou 3D
Desenhar mapa 2.5D ou 3D com C # das linhas
No entanto, a solução acima é bastante adequada para linhas dentro da porta de exibição que é 0 <x <largura e 0 <y <altura. No entanto, existem linhas em que seus pontos podem ter y <0 ou x <0 ou y> altura ou x> largura e, em seguida, a solução acima enlouqueceu. Alguém poderia me ajudar a descobrir como resolver o problema?
vvvv Com o algoritmo 3D vvvv
.
vvvv Sem algoritmo 3D vvvv
Update :: Depois 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;
O mapa se torna como segue
Eu acho que há algo errado com os cálculos de Y quando eles vão muito além dos valores negativos. Estou usando o Qt e as rachaduras na linha parecem um bug com o renderizador do Qt, não relacionado ao nosso problema original.