Just my two cents, but assuming it was perfectly ok for the OP to embarass someone, a good lot of you seem to believe that there didn't exist better options. I spent half decade as an undisputed leader in squad. Yelling, demeaning, and out right humiliating was part of the norm when dealing with new privates. When I shifted to the civilian world, I toned it down a lot, but initially some things were so ingrain in me that I didn't realize that my tone, to civilians, was often seen as harsh and demanding.
One day a peer of mine came talked to me about how he perceived my attitude to be. I told him I was unaware and made an effort to readjust. So with that said. I've found that a lot of people are not aware that certain things they do bother you. So if you find that you just hold it in and then explode, that's a poor way to handle any situtation, which I believe is what the OP did.
There's an escalation of force that needs to be applied. IMO, talking to the person, then to someone of authority is always the better route than publicly trying to embarass someone.
On side note, if this was a work place and I was your boss, I would be inclinded to fire you. I'm a very no nonsense type of guy, and deciding to cause a scene instead of talkingto me about the issue is a cue that you have poor communication skills and negative influence in the work place. I don't need drama at the work place, but if you feel incline to bring it, then I tend to find that I don't need you either.