… Meksika da Parasını Ödeyecek!


26

Donald Trump, bu sitedeki insanların çalışmalarından çok etkilendi. Ben Carson'a yardım etmenin ne kadar harika bir iş yaptığını gördü , o yüzden duvarını yapman için seni işe bile aldı . Müthiş olduğunu düşünüyor. Şimdi yine yardımına ihtiyacı var. Duvarını başarıyla inşa ederken, şimdi bunun için Meksika hükümetine ihtiyacı var. 1 milyon dolar mil almak istiyor ve ABD-Meksika sınırının 1.989 mil uzunluğunda olduğunu söyledi . Ancak bu sayının doğru olduğundan tam olarak emin değiller, bu yüzden ölçeklendirmek için görsel bir temsil istiyorlar. Girdiğiniz yer burası. Bu haritayı alacaksınız: görüntü tanımını buraya girin

ve sınırdaki her n (50 <= n <= 500) mil için, o noktadaki sınırın eğimine dik, 25 piksel uzunluğunda bir çizgi çizin. Haritanın sağ tarafındaki ölçeği kullanarak, 100 mil ~ 50 piksel olduğunu belirledim . N = 60 için ilk 3 satırdan bir örnek çizdim, ancak bunlar sadece yaklaşık:

görüntü tanımını buraya girin

Notlar:

  • Tek giriş n . Çıktı, çizgilerin eklenmesi, ekrana çizilmesi veya raster görüntü dosyasına kaydedilmesi ile harita görüntüsü olmalıdır (orijinal harita dosyasının üzerine yazabilirsiniz).
  • Boş harita dosyasını istediğiniz dosya adı ile kaydedebilirsiniz. Bir JPEG, ancak tercih ederseniz, başka bir ortak raster biçimine dönüştürebilirsiniz. Ayrıca, boyutları orantılı tuttuğunuzda ve çizgileriniz ölçeklenmeye devam ettiği sürece görüntünün boyutunu% 50'ye kadar azaltabilirsiniz.
  • Her çizgi bu noktada sınırın eğimine dik olmalıdır. Eğim, noktadan 50 mil önce ve noktadan 50 mil sonra sona erecek şekilde hesaplanmalıdır.

Doğruluk:

  • Her çizginin eğimi ± 5 ° hata payına sahip olabilir
  • Her çizgi arasındaki boşluk ± 20 mil hata payına sahip olabilir (normal harita üzerinde 10 piksel).

3
10000 $ / mil fiyatı, "duvar" demediğinde, işçilerin kurduğu 2,50 $ / saat değerinde 3 tel dikenli tel kastetmediğiniz sürece büyük olasılıkla 100 faktöre düşmektedir.
Glenn Randers-Pehrson

1
Ayrıca Mma, ABD-Meksika sınırının yaklaşık 1952 mil uzunluğunda olduğunu belirtti.
LegionMammal978

18
Bilmek güzel, ama önemli olan bu rakamların hiçbiri bu zorluk için bir şey ifade etmiyor.
geokavel

@geokavel Devam et ve cevapla.
programmer5000

1
Ek olarak, bu zorluğun amacı, çizgileri çizmeden önce görüntüyü işleyebilme ve kenarlığı tanımlayabilmektir veya görüntüyü gerçekten işlemeden (sadece görüntünün nasıl olacağını varsaymak suretiyle çizgileri çizebilmek) kabul edilebilir mi? )?
notjagan

Yanıtlar:


7

Python 2 + numpy + OpenCV , 576 bayt

Demo 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)

Bu program neredeyse tamamen bozulmamış ve şu anda biraz yanlış olan yönleri var, ama en azından çoğunlukla çalışıyor. Ayrıca, bir orada biraz değişmeyeceği varsayılan biraz, ama o sınırı kapatan yaklaşık pencere için sadece var ve sınırındaki ilk piksel (ikinci olan aslında büyük olasılıkla daha sonra kaldırır) koordinatı.

Program tarafından kullanılan görüntü alanda (yani 1120 x 865) yarıya inmiştir ve bu nedenle çizilen çizgilerin uzunluğu ve çizgiler arasındaki mesafe daha küçüktür.


2
güzel!! bir cevap görmek harika!
geokavel

çalışmayan tio bağlantısını silmeyi öner
Евгений Новиков


@ ЕвгенийНовиков Gif için teşekkürler! Daha önce sahip olduğum resimlerden çok daha açıklayıcı (ve özlü).
notjagan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.