…และเม็กซิโกจะจ่ายให้!


26

Donald Trump ประทับใจมากกับการทำงานของผู้คนในเว็บไซต์นี้ เขาเห็นว่าที่น่าตื่นตาตื่นใจของงานที่คุณได้ช่วยเบนคาร์สันเพื่อที่เขาจะได้รับการว่าจ้างให้คุณสร้างกำแพงของเขา เขาคิดว่าคุณยอดเยี่ยม ตอนนี้เขาต้องการความช่วยเหลือของคุณอีกครั้ง ในขณะที่เขาสร้างกำแพงได้สำเร็จตอนนี้เขาต้องการให้รัฐบาลเม็กซิกันจ่ายเงินให้ เขาต้องการที่จะเรียกเก็บเงิน $ 1 ล้านไมล์และเขาได้บอกพวกเขาว่าชายแดนเม็กซิโกเป็น1,989 ไมล์ยาว อย่างไรก็ตามพวกเขาไม่แน่ใจว่าตัวเลขนี้ถูกต้องหรือไม่ดังนั้นพวกเขาจึงต้องการแสดงภาพในระดับมากเช่นกัน นั่นคือสิ่งที่คุณเข้ามาคุณจะต้องใช้แผนที่นี้: ป้อนคำอธิบายรูปภาพที่นี่

และสำหรับทุกn (50 <= n <= 500) ไมล์บนเส้นขอบวาดเส้น 25 พิกเซลความยาวตั้งฉากกับความลาดชันของเส้นขอบที่จุดนั้น ใช้ขนาดที่ด้านขวามือของแผนที่ที่ฉันได้พิจารณาแล้วว่า100 ไมล์ ~ 50 พิกเซล ฉันวาดตัวอย่างของ 3 บรรทัดแรกสำหรับ n = 60 แต่นี่เป็นเพียงตัวอย่างเท่านั้น:

ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ:

  • การป้อนข้อมูลเพียงอย่างเดียวคือn ผลลัพธ์ควรเป็นภาพแผนที่โดยมีการเพิ่มบรรทัดลากไปที่หน้าจอหรือบันทึกไว้ในไฟล์ภาพแรสเตอร์ (คุณสามารถเขียนทับไฟล์แผนที่ต้นฉบับ)
  • คุณสามารถบันทึกไฟล์แผนที่เปล่าด้วยชื่อไฟล์ใดก็ได้ที่คุณต้องการ เป็น JPEG แต่คุณสามารถแปลงเป็นรูปแบบแรสเตอร์ทั่วไปอื่นได้หากต้องการ นอกจากนี้คุณสามารถลดขนาดของภาพลงได้มากถึง 50% ตราบใดที่คุณยังคงสัดส่วนตามสัดส่วนและเส้นของคุณยังคงขยายขนาด
  • แต่ละบรรทัดควรตั้งฉากกับความชันของชายแดน ณ จุดนั้น ความชันควรคำนวณเริ่มต้น 50 ไมล์ก่อนถึงจุดและสิ้นสุด 50 ไมล์หลังจากจุดนั้น

ความถูกต้อง:

  • ความลาดชันของแต่ละบรรทัดสามารถมีระยะขอบของข้อผิดพลาด± 5 °
  • ระยะห่างระหว่างแต่ละบรรทัดสามารถมีระยะขอบของข้อผิดพลาด± 20 ไมล์ (10 พิกเซลบนแผนที่ปกติ)

3
ราคา $ 10,000 / mile น่าจะปิดตัวที่ 100 ยกเว้นว่า "wall" คุณหมายถึงลวดหนาม 3 เส้นที่ติดตั้งโดยกรรมกรที่ทำเงิน $ 2.50 / ชั่วโมง
Glenn Randers-Pehrson

1
นอกจากนี้ Mma ระบุว่าชายแดนสหรัฐฯ - เม็กซิโกมีความยาวประมาณ 1952 ไมล์
LegionMammal978

18
เป็นการดีที่จะรู้ แต่สิ่งสำคัญคือตัวเลขเหล่านั้นไม่ได้มีความหมายอะไรสำหรับความท้าทาย
geokavel

@geokavel ไปข้างหน้าและตอบคำถาม
programmer5000

1
นอกจากนี้ความตั้งใจของความท้าทายนี้คือสามารถประมวลผลภาพและระบุเส้นขอบก่อนที่จะวาดเส้นหรือเป็นที่ยอมรับเพียงแค่สามารถวาดเส้นโดยไม่ต้องประมวลผลภาพจริง ๆ (สมมติว่าสิ่งที่ภาพจะเป็นอย่างไร )?
notjagan

คำตอบ:


7

งูหลาม 2 + numpy + OpenCV 576 ไบต์

GIF สาธิต

from cv2 import*
from numpy import*
n=input()/4
f="m.png"
i=imread(f)
b=array([0]*3)
y=array([165,195,225])
j=inRange(i,b,b+120)
k=inRange(i,y,y+25)
for x,y in zip(*where(j)):j[x,y]=k[x+3,y]-j[x+1,y]>1
j=j[506:732,152:557]
p=[array([11,9])]
for c in sorted(zip(*where(j)),key=lambda c:c[1]):r=range(p[-1][1]+1,c[1]+1);p+=map(array,zip(map(int,interp(r,*zip(p[-1],c)[::-1])),r))
for x,c in enumerate(p[25:-25:n]):s=-1/true_divide(*p[x*n+50]-p[x*n+25]);k=6/(1+s**2)**.5;line(i,*map(tuple,[(c+[int(k*s)+506,int(k)+152])[::-1],(c-[int(k*s)-506,int(k)-152])[::-1],b]))
imwrite(f,i)

โปรแกรมนี้แทบไม่ได้รับความนิยมเลยและมีแง่มุมของโปรแกรมที่ไม่ถูกต้องในขณะนี้ แต่อย่างน้อยก็ใช้งานได้เป็นส่วนใหญ่ นอกจากนี้ยังมีการเข้ารหัสฮาร์ดโค้ดเพียงเล็กน้อยแต่มีไว้สำหรับหน้าต่างโดยประมาณที่ล้อมรอบเส้นขอบและพิกัดพิกเซลแรกบนเส้นขอบ

ภาพที่ใช้โดยโปรแกรมจะลดลงครึ่งหนึ่งในพื้นที่ (เช่น 1120 x 865) ดังนั้นความยาวของเส้นที่วาดและระยะห่างระหว่างเส้นเล็ก


2
เย็น!! ดีมากที่ได้เห็นคำตอบ!
geokavel

ขอแนะนำให้ลบลิงก์ tio ที่ไม่ทำงาน
ЕвгенийНовиков

1
GIF สาธิตi.stack.imgur.com/RWQu4.gif ใช้การแก้ไขของฉัน
ЕвгенийНовиков

@ ЕвгенийНовиковขอบคุณสำหรับ gif! มันเป็นตัวอย่าง (และความสำเร็จ) มากกว่าภาพที่ฉันเคยมีมาก่อน
notjagan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.