人に何かをぶつける時、「throw something at 人」で表現するのか、「throw something to 人」で表現するのかを考えてみます。
「at」は「ある一点に向かっていく」イメージ
まず、「at」の基本は「点」のイメージです。
She looked at him.
(彼女は彼を見た)
彼女の視線が彼を捉えた感じです。一方的に突き刺す行為。
このように、「標的」に向かって直線的なイメージで何かアクションを起こした場合、繋ぐ前置詞は「at」になります。
違う例を見てみましょう。
The dog barked at me suddenly.
(その犬は突然、私に向かって吠えた)
「bark at …=…に向かって吠える」意味ですが、これにも「at」の性格が表れています。どこか「攻撃的」なニュアンスがある。
同じように、「yell at …=…に向かって怒鳴る」「be mad at …=…に向かって怒る」などがあります。どれも「鋭角に突き刺さってくる感覚」がありますね。
そのため、何かを投げてぶつける場合は「throw something at …」で表現します。
I threw a snowball at him.
(私は彼に雪玉をぶつけた)

雪合戦は狙いを定め、相手にぶつける遊びなので、正しく「at」の感覚です。
「to」は「相手に届ける」イメージ
一方、「to」は「到達点が高い」とよく言われますが、「相手に届く」イメージです。有名な構文は「give something to 人」です。
I gave a present to my mother.
(私は母にプレゼントを渡した)

「give」するには、相手が受け取らないといけません。このように「to」を伴う動詞は、こちらからの一方的なアクションではなく、相手に届くのが前提です。
違う例を見てみましょう。
He showed his drawing to his teacher.
(彼は絵を先生に見せた)

「show something to 人=人に…を見せる」意味です。もちろん、「見せる」のは相手に届く前提の動詞です。
同じように、「teach something to …=…に教える」「hand something to …=…に手渡す」などがあります。
どれも「at」と違って、ふわりと相手に届ける感覚がありますね。「共同作業」のようなもの。
そのため、何かを投げて渡す場合は「throw something to …」で表現します。
I threw a ball to him.
(私は彼にボールを投げた)
もちろんこれを「at」にしてしまうと、相手はボールを取る前提ではなくなり、こちらから一方的にボールをぶつける意味に変わってしまいますので、注意です。
「shoot …」と「shoot at …」のニュアンスの違い
合わせて覚えておきたいのが、「shoot …」と「shoot at …」の感覚の違いです。
例えば、以下のような例文があったとします。
The hunter shot at the bird.

これはもちろん、「猟師は鳥を狙って撃った」ということを伝えています。当たったかどうかは、この文章からは分かりませんし、それを伝えたい文章でもありません。伝えたいのは、「狙った」という事実だけ。
しかし、これを「The hunter shot the bird.」にすると、「鳥は撃たれた」ことになります。動詞が目的語に「直接」作用している。

「at」があるかないかで、ニュアンスが大きく変わってくるので、注意が必要です。
覚えた表現は、オンラインレッスン中に使っていく中で定着していきます。
全て「無料体験」がありますので、自分に合ったスクールや講師が見つかるまで、色々と試してみて下さい。