簡體   English   中英

創建以質心為中心的三角形的圖像

[英]Creating an image of a triangle centered at the centroid

對不起,因為我是編程新手。 基本上,我被分配給“分析”並生成一個三角形的圖像,其中用戶指定了兩側的長度以及它們之間的角度大小,程序運行並找到了第三側以及兩個側面的長度其他角度(使用余弦定律)。 然后,我必須具有所有邊長,所有角度尺寸(可選)的文本輸出,並以烏龜的形式打印該區域,並在圖像中打印出“這是您的三角形\\ n,它的區域為x正方形像素”也一樣 同樣,三角形的質心必須位於(0,0)。 這是我到目前為止的內容:

import math
from turtle import*



print("This program will draw a custom triangle.")
firstside=float(input("Enter length of first side (between 10 and 400 pixels): "))
secondside=float(input("Enter length of second side (between 10 and 400 pixels): "))
includedangle=float(input("Enter the measure of the included angle in degrees (between 1 and 179): "))

print("Side lengths and angle measures:\n")





solvedthirdside=float(math.sqrt(firstside**2+secondside**2-(2*firstside*secondside*math.cos(includedangle))))

cage=Screen(); #Create screen object named cage
cage.setup(500,500) #set screen size to 500x500 pixels

另外,我也為此使用了烏龜圖形。

我真的為此感到掙扎。 一些幫助將不勝感激! 請幫忙! 謝謝!

這還沒有完成,但是現在應該容易得多。

我已將其完全分解為功能,並發表了大量評論; 它應該很容易理解。 希望有幫助!

import math
import turtle

def get_float(prompt):
    """
    Prompt for input and return it as a floating-point number
    """
    while True:
        try:
            return float(input(prompt))
        except ValueError:
            pass

def third_side(a, b, C):
    """
    Given a triangle defined by two sides and
    the angle between them (in degrees),
    return the length of the third side
    """
    return math.sqrt(a**2 + b**2 - 2. * a * b * math.cos(math.radians(C)))

def get_sides():
    """
    Prompt for a triangle as two sides and an angle,
    calculate the length of the third side,
    and return the three side lengths
    """
    side1 = get_float("Length of first side  (pixels, in 10..400)? ")
    side2 = get_float("Length of second side (pixels, in 10..400)? ")
    angle = get_float("Included angle (degrees, in 1..179)? ")
    return side1, side2, third_side(side1, side2, angle)

def get_angle(opp, left, right):
    """
    Given three sides of a triangle,
    return the angle opposite the first side (in degrees)
    """
    cos_opp = (left**2 + right**2 - opp**2) / (2. * left * right)
    return math.degrees(math.acos(cos_opp))

def get_angles(a, b, c):
    """
    Given three sides of a triangle,
    return the three angles (in degrees)
    """
    return get_angle(a, b, c), get_angle(b, c, a), get_angle(c, a, b)

def main():
    print("This program will draw a custom triangle.\n")
    side1, side2, side3    = get_sides()
    angle1, angle2, angle3 = get_angles(side1, side2, side3)

    print(
        "\n"
        "Sides and angles:\n"
        "a = {side1:>5.1f}    A = {angle1:>5.1f}\n"
        "b = {side2:>5.1f}    B = {angle2:>5.1f}\n"
        "c = {side3:>5.1f}    C = {angle3:>5.1f}\n"
        .format(
            side1=side1,   side2=side2,   side3=side3,
            angle1=angle1, angle2=angle2, angle3=angle3
        )
    )

    # Your code continues here!

if __name__=="__main_":
    main()

暫無
暫無

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

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