ดาวน์โหลดแอป
เลือกโฟลเดอร์และให้ผู้ช่วยอ่านไฟล์ที่เกี่ยวข้องก่อนแก้ไข ระบุเป้าหมายและขอบเขตของงานให้ชัดเจน
คำนวณน้ำหนักแบรีเซนตริกแม่นตรงจากจุดยอดจำนวนเต็มสามจุดและจุดจำนวนเต็มที่พิกัดมีค่าสัมบูรณ์ไม่เกิน 10000. ทดสอบจุดยอดและจุดภายนอก ปฏิเสธจุดยอดร่วมเส้นตรง และตรวจว่าน้ำหนักสร้างจุดเดิมได้.
เลือกโฟลเดอร์และให้ผู้ช่วยอ่านไฟล์ที่เกี่ยวข้องก่อนแก้ไข ระบุเป้าหมายและขอบเขตของงานให้ชัดเจน
เลือก endpoint ที่เข้ากันได้ เครื่องมือที่ใช้ได้และคุณภาพคำตอบขึ้นอยู่กับโมเดลและเซิร์ฟเวอร์ที่ตั้งค่า
ตรวจสอบการแก้ไขและผลลัพธ์คำสั่ง รันการตรวจสอบของโปรเจกต์ก่อนยอมรับผล โค้ดที่สร้างขึ้นไม่ได้ผ่านการทดสอบโดยอัตโนมัติ
เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม
from fractions import Fraction
def barycentric(vertices, point):
vertices, point = tuple(tuple(v) for v in vertices), tuple(point)
if len(vertices) != 3 or any(len(v) != 2 for v in vertices) or len(point) != 2:
raise ValueError("triangle.shape")
if any(type(c) is not int or abs(c) > 10000 for v in vertices + (point,) for c in v):
raise ValueError("coordinate.range")
(x0, y0), (x1, y1), (x2, y2) = vertices
x, y = point
den = (y1-y2)*(x0-x2) + (x2-x1)*(y0-y2)
if den == 0:
raise ValueError("triangle.degenerate")
a = Fraction((y1-y2)*(x-x2) + (x2-x1)*(y-y2), den)
b = Fraction((y2-y0)*(x-x2) + (x0-x2)*(y-y2), den)
return a, b, 1-a-bตรวจสอบก่อนนำไปใช้. ตรวจสอบการแก้ไขและผลลัพธ์คำสั่ง รันการตรวจสอบของโปรเจกต์ก่อนยอมรับผล โค้ดที่สร้างขึ้นไม่ได้ผ่านการทดสอบโดยอัตโนมัติ