Saltar al contenido

¿Cómo puedo dibujar un triángulo rectángulo?

La guía paso a paso o código que verás en este post es la solución más eficiente y válida que encontramos a esta inquietud o dilema.

tri = AASTriangle[Pi/2, Pi/4, 1];

srd = SignedRegionDistance[tri];

Nosotros podemos usar SignedRegionDistance con ContourPlot o con RegionPlot (esto sería muy lento):

ContourPlot[srd[x, y], x, -.2, 1, y, -.2, 1, 
  Contours -> .1, .02, 
  ContourShading -> None, Yellow, 
  ImagePadding -> 10, Frame -> False, ImageSize -> Large]

ingrese la descripción de la imagen aquí

RegionPlot[.02 <= srd[x, y] <= .1, x, -.2, 1, y, -.2, 1, 
 PlotStyle -> Yellow, PlotPoints -> 80, ImagePadding -> 10, 
 Frame -> False, ImageSize -> Large]

ingrese la descripción de la imagen aquí

También podemos usar la función explode de esta respuesta para cambiar la escala de las líneas de contorno conservando las esquinas redondeadas:

ClearAll[explode, bsf]
explode[f_] := f[#] + #2 Cross @ Normalize[f'[#]] &;

cp0 = ContourPlot[srd[x, y], x, -.1, .8, y, -.1, .8, 
   Contours -> .05, ContourShading -> None];

mc = [email protected][cp0];

bsf = BSplineFunction[mc, SplineClosed -> True];

Graphics[Thick, BSplineCurve[mc, SplineClosed -> True],  
  Blue, Line[explode[bsf][#, .1] & /@ Subdivide[200]]]

ingrese la descripción de la imagen aquí

Graphics[Black, Thick, BSplineCurve[mc, SplineClosed -> True], 
  Line[explode[bsf][#, .1] & /@ Subdivide[200]], 
  Red, FilledCurve[BSplineCurve[mc, SplineClosed -> True], 
    Line[explode[bsf][#, .1] & /@ Subdivide[200]]]]

ingrese la descripción de la imagen aquí

Actualizado

pts = 0, 0, 2, 0, 0, 4;
in = .7, 1;
smallpts = Mean[#, in] & /@ pts;
Graphics[Orange, EdgeForm[JoinForm["Round"], Thickness[0.035]], 
  FilledCurve[Line[pts], Line[smallpts]]]

ingrese la descripción de la imagen aquí

Original

pts = 0, 0, 2, 0, 0, 4;
in = .7, 1;
smallpts = Mean[#, in] & /@ pts;
Graphics[Red, Point[in], Green, Polygon[pts -> smallpts]]

O

pts = 0, 0, 2, 0, 0, 4;
in = .7, 1;
smallpts = 
 Mean[#, in] & /@ pts; 
Graphics[Orange, 
  FilledCurve[Line[pts], Line[smallpts]]]

Para un aspecto de boceto dibujado a mano:

Graphics[AbsoluteThickness[30], ColorData[97]@1, CapForm["Round"], 
   JoinForm["Round"], Line[0, 0, 1/Sqrt[2], 0, 0, 1/Sqrt[2], 0, 0], 
  ImagePadding -> 30] // ImageEffect[#, "Jitter", 5] &

ingrese la descripción de la imagen aquí

Sección de Reseñas y Valoraciones

Nos puedes añadir valor a nuestra información colaborando tu experiencia en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *