如何制作三叶草图像

How to make shamrock image

提问人:wosker4yan 提问时间:11/15/2023 最后编辑:Trenton McKinneywosker4yan 更新时间:11/15/2023 访问量:35

问:

我正在尝试制作三叶草晶体以供以后制造,并且正在使用纳斯卡设计工具来做到这一点。

如何放置梯形,使梯形的边平行于圆柱形,并且始终位于尖角的末端。

import nazca as nd
import numpy as np
# Define parameters
a = 500
semib = 0.255 * a
semia = semib * 0.75
shift = 0.22 * a
thickness = 0.65 * a
f = 2 * semia / np.sqrt(3)
r = semia

with nd.Cell(name="shamrock") as sham:
    # Create circles for the shamrock pattern
    circ1 = nd.geometries.circle(radius=semia, N=100)
    circ2 = nd.geometries.circle(radius=semia, N=100)
    circ3 = nd.geometries.circle(radius=semia, N=100)

    # Create Polygon objects for circles
    circ1_polygon = nd.Polygon(layer=56, points=circ1)
    circ2_polygon = nd.Polygon(layer=56, points=circ2)
    circ3_polygon = nd.Polygon(layer=56, points=circ3)

    # Place circles for the shamrock pattern using put
    circ1_polygon.put(0, shift)
    circ2_polygon.put(-shift * 0.5 * np.sqrt(3), -shift * 0.5)
    circ3_polygon.put(shift * 0.5 * np.sqrt(3), -shift * 0.5)

    # Identify sharp corners
    sharp_corner1 = ((-shift * 0.5 * np.sqrt(3)) / 2, (shift + (-shift * 0.5)) / 2)
    sharp_corner2 = ((0 + (shift * 0.5 * np.sqrt(3))) / 2, (shift + (-shift * 0.5)) / 2)
    sharp_corner3 = ((-shift * 0.5 * np.sqrt(3) + (shift * 0.5 * np.sqrt(3))) / 2, (-shift * 0.5 + (-shift * 0.5)) / 2)
    semicircle_radius  =  f-r
    # Create trapezoid using the trapezoid function
    
    trapezoid_shape = nd.geometries.trapezoid(length=50, height=160, angle1=132, angle2=132, position=1)

    # Create Polygon object for trapezoid
    trapezoid_polygon = nd.Polygon(layer=56, points=trapezoid_shape)

    # Place trapezoid at the sharp corners
    trapezoid_polygon.put(25,75,180)


nd.export_plt(sham)

这是图片。

enter image description here

enter image description here

理想情况下,最好有这样的东西和光滑的角落。但我想在上面放一个梯形,以平滑更锋利的角落。

Python Matplotlib 几何 三角学

评论

1赞 tmdavison 11/15/2023
您正在使用 NAZCA 库,但标记了 Matplotlib,该库未在您的代码中使用......您在寻找哪种解决方案?
0赞 wosker4yan 11/15/2023
我想要任何解决方案,只要它能给我带来我想要的结果,稍后我会在纳斯卡实现它。
1赞 Yulia V 11/16/2023
您在寻找梯形顶点坐标的公式吗?是这样,那么这是一个数学问题,而不是编程问题。

答: 暂无答案