Menggambar dua ketinggian segitiga

Sep 20 2020

Saya mencoba membuat segitiga dengan 2 ketinggian. Ini bekerja untuk 'Semua' simpul.

a = {5, 0};
b = {0, 0};
c = {3, 6};
tri = {a, b, c};
alt = TriangleConstruct[tri, {"Altitude", All}];
Graphics[{Style[Triangle[tri], Opacity[0.2]], alt}]

Tetapi ketika saya mencoba menentukan dua simpul,

alt = TriangleConstruct[tri, {"Altitude", {a, b}}]

Pesan berikut keluar:

TriangleConstruct is not a Graphics primitive or directive.

Bagaimana cara menentukan dua simpul untuk menggambar ketinggian?


Saya juga telah mencoba yang berikut ini:

RandomInstance[GeometricScene[{a,b,c,d}, {d == TriangleConstruct[{a,b,c}, {"Altitude", a}]}]]

Tapi hasilnya hanya:

RandomInstance[GeometricScene[{{a, b, c, d}, {}}, {d ==TriangleConstruct[{a, b, c}, {"Altitude", a}]}, {}]]

Apa yang salah?

Jawaban

4 cvgmt Sep 20 2020 at 14:23
a = {5, 0};
b = {0, 0};
c = {3, 6};
tri = {a, b, c};
TriangleConstruct[{a, b, c}, "Altitude"]
TriangleConstruct[{b, c, a}, "Altitude"]
TriangleConstruct[{c, a, b}, "Altitude"]

(* Line[{{0, 0}, {9/2, 3/2}}];
Line[{{3, 6}, {3, 0}}];
Line[{{5, 0}, {1, 2}}]
*)

Begitu

a = {5, 0};
b = {0, 0};
c = {3, 6};
tri = {a, b, c};
alt = TriangleConstruct[tri, {"Altitude", All}];
Graphics[{Style[Triangle[tri], Opacity[0.2]], 
  TriangleConstruct[{a, b, c}, "Altitude"],
  TriangleConstruct[{b, c, a}, "Altitude"]}]
1 m_goldberg Sep 21 2020 at 11:01

Saya akan melakukannya dengan cara ini. Saya menggunakan metode yang disarankan oleh kglr dalam komentarnya, tetapi dengan hati-hati berhati-hati dengan pelingkupan seperti melokalkan variabel dan menghilangkan variabel bebas dari alt.

Clear[alt]
alt[p_, tri_] := TriangleConstruct[tri, {"Altitude", p}]
With[{a = {5, 0}, b = {0, 0}, c = {3, 6}},
  Module[{tri = {a, b, c}},
    Graphics[{Style[Triangle[tri], Opacity[0.2]], alt[#, tri] & /@ {a, b}}]]]