Tengo una capa de punto de estilo con la siguiente geometría generador fórmula para un polígono irregular. Es la unión de (a) un buffer circular con (b) una de las copas de los árboles propagación amortiguada por 1m (en el que se extiende más allá (a)).
union(buffer($geometry,"tpzbsrad_m"),buffer(make_polygon(make_line(
translate($geometry,0,max("N",0.2)),
translate($geometry,0.6*max("E",0.2),0.6*max("N",0.2)),
translate($geometry,max("E",0.2),0),
translate($geometry,0.6*max("E",0.2),-0.6*max("S",0.2)),
translate($geometry,0,-max("S",0.2)),
translate($geometry,-0.6*max("W",0.2),-0.6*max("S",0.2)),
translate($geometry,-max("W",0.2),0),
translate($geometry,-0.6*max("W",0.2),0.6*max("N",0.2)),
translate($geometry,0,max("N",0.2)))),1))
Me gustaría usar la geometría del generador para dibujar 45° con la línea del árbol punto ($geometry
) del borde de este polígono irregular.
Para la mayoría de los casos, el siguiente es suficiente - una línea en el borde del búfer circular.
make_line(
$geometry, make_point($x + "tpzbsrad_m"*cos(radians(45)),
$y - ("tpzbsrad_m"*sin(radians(45)))
))
Pero donde las copas de los árboles se extiende más allá de la amortiguación en esa zona no coinciden. Ver la imagen de abajo:
Qué expresión se puede utilizar para obtener la línea de ser lo suficientemente largos para siempre en contacto con el borde del polígono irregular a 45°? shortest_line()
de resultados en los ángulos por todo el lugar, de forma natural.
(Buscando una expresión que lo ideal sería que trabaja en QGIS 2.18 y 3.x)