簡體   English   中英

兩種形狀的交點之間的畫線

[英]Drawing line between intersection of two shapes

我在玩圖形,特別是原始形狀的交集和並集。

給定以下內容:

Elipse2D e1 = new Elipse2D.Double(120, 80, 80, 80);
Elipse2D e2 = new Elipse2D.Double(180, 80, 80, 80);

Area a1 = new Area(e1);
a1.add(new Area(e2));

gfx.draw(a1); // gfx is a Graphics2D object 

這提供了非常好的形狀,看起來像90年代動作電影中雙筒望遠鏡的第一人稱視角。

但是,我想知道是否有可能在兩個相交點之間畫一條線,這樣看起來幾乎就像兩個單元正在忙於划分。 用兩個圓圈完成此操作之后,也許可以使用多個圓圈嗎?

我知道這可以通過找到兩個圓之間的交點並手動繪制線來完成,但是,我不想重新發明輪子。

有什么建議么?

給定這些Ellipse2D的參數后,這些等式可以寫成:

x(r) = X + W (cos(r) + 1)/2
y(r) = Y + H (sin(r) + 1)/2

x(s) = X + W' (cos(s) + 1)/2
y(s) = Y + H  (sin(s) + 1)/2

y方程可以得出結論,角度rs具有相同的正弦值,並且是互補的(相等的角度將不滿足x方程),因此cos(s)=-cos(r)

消除后,我們有(W'+W) cos(r) = W'-W 在給定的情況下, cos(r)=1/5r=78.463°

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM