…そして、メキシコはそれを支払います!


26

ドナルド・トランプは、このサイトの人々の仕事に非常に感銘を受けています。彼はベン・カーソンを助けるあなたの仕事のすばらしさを知ったので、彼はあなたを雇って彼の壁建てることさえしました。彼はあなたが素晴らしいと思います。今、彼は再びあなたの助けを必要としています。彼は自分の壁をうまく構築しましたが、今ではメキシコ政府がそれを支払う必要があります。彼は1マイルあたり100万ドルを請求したいと考えており、アメリカとメキシコの国境は1,989マイルの長さであると伝えています。ただし、この数値が正確かどうかはよくわからないため、縮尺どおりの視覚表現も必要です。それがあなたの出番です。あなたはこの地図を取るべきです: ここに画像の説明を入力してください

そして、境界上のn(50 <= n <= 500)マイルごとに、そのポイントでの境界の傾斜に垂直な25ピクセル長の線を引きます。地図の右側にある縮尺を使用して、100マイル〜50ピクセルであると判断しました。n = 60の最初の3行のサンプルを描画しましたが、これらは概算です。

ここに画像の説明を入力してください

ノート:

  • 唯一の入力はnです。出力は、線が追加、画面に描画、またはラスターイメージファイルに保存されたマップイメージでなければなりません(元のマップファイルを上書きできます)。
  • 空のマップファイルは、任意のファイル名で保存できます。これはJPEGですが、必要に応じて別の一般的なラスター形式に変換できます。また、寸法を比例させ、線の縮尺を維持している限り、画像のサイズを最大50%縮小できます。
  • 各線は、そのポイントで境界の傾斜に垂直でなければなりません。勾配は、ポイントの50マイル前から開始し、ポイントの50マイル後に終了するように計算する必要があります。

正確さ:

  • 各ラインの勾配には、±5°の誤差がある場合があります
  • 各行の間隔には、±20マイル(通常のマップでは10ピクセル)の誤差がある場合があります。

3
「壁」によって、労働者が1時間あたり2.50ドルを製造する3本の有刺鉄線を意味する場合を除き、価格10000ドル/マイルはおそらく100倍の値引きです。
グレンランダース-パーソン

1
また、Mmaは、米国とメキシコの国境の長さは約1952マイルであると述べています。
LegionMammal978

18
知っておくと良いのですが、重要なことは、これらの数字がこの課題にとって何の意味もないということです。
geokavel

@geokavelさあ、答えてください。
Programmer5000

1
さらに、この課題の目的は、線を描く前に画像を処理して境界線を識別できるようにすること、または実際に画像を処理せずに線を描画できることです(本質的には画像がどのようなものかを想定します) )?
-notjagan

回答:


7

Python 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
クール!!答えを見るのは素晴らしいことです!
ジオカベル

動作していないTIOリンクを削除することを提案する
ЕвгенийНовиков

1
gifのデモi.stack.imgur.com/RWQu4.gif。私の編集の適用
ЕвгенийНовиков

@ЕвгенийНовиковgifをありがとう!以前の写真よりもはるかに説明的(かつ簡潔)です。
ノトジャガン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.