All pastes #595974 Raw Edit

Miscellany

public text v1 · immutable
#595974 ·published 2007-06-29 19:11 UTC
rendered paste body
private void RepaintMap()
        {
            Graphics g = Graphics.FromImage(bufferMap);
            PaintMap(g);
            DrawUnits(g);
            drawTor(g, windSpeed, 40, unitList[1].barrelAngle, unitList[1].getLineToDraw()[1], windDirection);
            g.Dispose();
        }

        public void drawTor(Graphics g, int windSpeed, float startV, double angle, Point initialPosition, WindDirection windDirection)
        {
            //windSpeed = 10;
            int wyV = 0, wxV = 0;
            switch (windDirection)
            {
                case WindDirection.E: wxV = windSpeed; wyV = 0;
                    break;
                case WindDirection.NE: wxV = windSpeed; wyV = windSpeed;
                    break;
                case WindDirection.N: wxV = 0; wyV = windSpeed;
                    break;
                case WindDirection.NW: wxV = -windSpeed; wyV = windSpeed;
                    break;
                case WindDirection.W: wxV = -windSpeed; wyV = 0;
                    break;
                case WindDirection.SW: wxV = -windSpeed; wyV = -windSpeed;
                    break;
                case WindDirection.S: wxV = 0; wyV = -windSpeed;
                    break;
                case WindDirection.SE: wxV = windSpeed; wyV = -windSpeed;
                    break;
                case WindDirection.None: wxV = 0; wyV = 0;
                    break;
                default:
                    break;
            }

            for (int time = 0; time < 100; time++)
            {
                int x1 = (int)(initialPosition.X + (startV * Math.Cos(angle) + wxV) * time);
                int y1 = (int)(initialPosition.Y + (startV * Math.Sin(angle) + wyV) * time + (9.81 / 2) * time * time);
                //int x2 = (int)(initialPosition.X + (startV * Math.Cos(angle) + wxV) * (time+1));
                //int y2 = (int)(initialPosition.Y + (startV * Math.Sin(angle) + wyV) * (time+1) + (9.81 / 2) * time * time);
                //g.DrawLine(Pens.Fuchsia,new Point(x1,y1), new Point(x2,y2));
                g.DrawEllipse(Pens.Fuchsia, (int)(x1 * mapSize.X / fileMapSize.X) - 2,
                    (int)(y1 * mapSize.Y / fileMapSize.Y) - 2, 4, 4);
            }
        }