teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

文言補足

2020/01/17 03:20

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  データを作るだけですが、こんな処理でいけるかな?
2
- 縦方向と横方向の差分の長い方を選んで、1ステップずつ座標を求めながら color を格納。
2
+ 縦方向と横方向の差分の長い方を座標移動ステップ数に選んで、1ステップずつ座標を求めながら color を格納。
3
3
  `+ 0.5` して四捨五入計算。
4
4
 
5
5
  ```python

1

四捨五入計算追加

2020/01/17 03:20

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  データを作るだけですが、こんな処理でいけるかな?
2
2
  縦方向と横方向の差分の長い方を選んで、1ステップずつ座標を求めながら color を格納。
3
+ `+ 0.5` して四捨五入計算。
3
4
 
4
5
  ```python
5
6
  def ex5_6(image, y1, x1, y2, x2, color):
@@ -7,7 +8,9 @@
7
8
  dx = x2 - x1
8
9
  step = max(abs(dy), abs(dx))
9
10
  for i in range(step + 1):
10
- image[y1 + dy * i // step][x1 + dx * i // step] = color
11
+ sy = y1 + int((dy * i + 0.5) // step)
12
+ sx = x1 + int((dx * i + 0.5) // step)
13
+ image[sy][sx] = color
11
14
 
12
15
  image = [[0, 0, 0, 0, 0],
13
16
  [0, 0, 0, 0, 0],