示例#1
0
    public CWheelModelDrawer(WheelModel wheel_model, Rect left_rect, Rect right_rect, string resource_font)
    {
        m_wheel_model = wheel_model;

        m_left_rect         = left_rect;
        m_right_rect        = right_rect;
        m_left_rect_center  = new Vector3(m_left_rect.center.x, m_left_rect.center.y);
        m_right_rect_center = new Vector3(m_right_rect.center.x, m_right_rect.center.y);

        m_square_radius = m_left_rect.width / 2.0f;

        m_spoke_line_width = m_square_radius * 0.01f;

        m_font = Resources.Load <Font> (resource_font);

        m_font_black_st                  = new GUIStyle();
        m_font_black_st.font             = m_font;
        m_font_black_st.fontSize         = (int)(m_square_radius * 0.075f);
        m_font_black_st.normal.textColor = Color.black;
        m_font_black_st.alignment        = TextAnchor.MiddleCenter;


        m_circle_button_radius = m_font_black_st.lineHeight / 2.0f;

        m_circle_buttons = new Vector3[m_wheel_model.get_nspokes(), 2];

        updateDrawData();
    }
示例#2
0
    void reinitializeModel()
    {
        if (m_wheel_model_reinitialize_disable)
        {
            return;
        }

        m_wheel_model = new WheelModel();
        m_wheel_model.initialize(m_config_n_spokes, m_config_n_cross, m_config_rim_d, m_config_hub_d, m_config_axle_length, m_config_l_dish, m_config_r_dish);
        if (!m_wheel_model.compute())
        {
            m_assign_spoke_count_slider.value = 3;
            m_assign_cross_count_slider.value = 3;
            m_assign_rimd_slider.value        = 519;
            m_assign_hubd_slider.value        = 50;
            m_assign_axlel_slider.value       = 100;
            m_assign_ldish_slider.value       = 15;
            m_assign_rdish_slider.value       = 15;
            updateWheelModelSliders();
            m_wheel_model.reset_balance();
            m_wheel_model.compute();
        }

        updateModelDrawer();
    }
示例#3
0
        public ActionResult Edit(int id)
        {
            WheelDataAccess WheelDataAccess = new WheelDataAccess();
            WheelModel      model           = WheelDataAccess.Read(id);

            return(View(model));
        }
示例#4
0
        public void WheelModelTest()
        {
            var model = new WheelModel();
            var datas = model.Process(0.0, 10.0, 0.5);

            Assert.IsNotNull(datas);
            Assert.AreEqual(21, datas.Count);
        }
示例#5
0
    void m_WheelModel_reinitialize()
    {
        m_wheel_mesh_sections_count = m_spokes_count * (m_wheel_mesh_additional_sections_count + 1);

        m_rim_base_sections = new Points3D[m_wheel_mesh_sections_count + 1];
        for (int i = 0; i < m_wheel_mesh_sections_count; ++i)
        {
            m_rim_base_sections[i] = new Points3D();
            m_rim_base_sections[i].addPoint(new Vector3D(0, -0.015, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(-0.008, -0.015, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(-0.008, -0.020, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(-0.010, -0.020, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(-0.010, -0.010, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(-0.005, 0, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(0.005, 0, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(0.010, -0.010, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(0.010, -0.020, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(0.008, -0.020, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(0.008, -0.015, 0));
            m_rim_base_sections[i].addPoint(new Vector3D(0, -0.015, 0));
        }

        int base_section_point_count = m_rim_base_sections[0].points_count;

        double[][] rough_wave_x    = new double [base_section_point_count][];
        double[][] rough_wave_y    = new double [base_section_point_count][];
        int        rough_min_range = (m_wheel_mesh_sections_count / m_spokes_count) * 3;
        int        rough_max_range = (m_wheel_mesh_sections_count / m_spokes_count) * 6;

        for (int i = 0; i < base_section_point_count; ++i)
        {
            rough_wave_x[i] = SplineInterpolator.generateRoughLoopedCurve(m_wheel_mesh_sections_count, rough_min_range, rough_max_range, m_rim_rough_size);
            rough_wave_y[i] = SplineInterpolator.generateRoughLoopedCurve(m_wheel_mesh_sections_count, rough_min_range, rough_max_range, m_rim_rough_size);
        }

        for (int i = 0; i < m_wheel_mesh_sections_count; ++i)
        {
            for (int j = 1; j < base_section_point_count - 1; ++j)   //exclude seam

            {
                m_rim_base_sections[i][j] += new Vector3D(rough_wave_x[j][i], rough_wave_y[j][i], 0);
            }
        }

        m_rim_base_sections[m_wheel_mesh_sections_count] = m_rim_base_sections[0].copy();

        m_WheelModel = new WheelModel(m_spokes_count, m_cross_count, m_rim_d, m_hub_d, m_axle_length, m_l_dish, m_r_dish);
        for (int i = 0; i < m_WheelModel.spokes_count; ++i)
        {
            m_WheelModel_spokes_rev90_offset[i] = UnityEngine.Random.Range(0, 4);
        }

        m_WheelModel_random_unbalance();
    }
示例#6
0
        public async Task <ActionResult> Register(WheelModel model)
        {
            if (ModelState.IsValid)
            {
                WheelDataAccess WheelDataAccess = new WheelDataAccess();
                WheelDataAccess.Create(model);

                return(RedirectToAction("List", "Wheel"));
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
示例#7
0
        public override void Render()
        {
            _effect.View       = Engine.Instance.Camera.View;
            _effect.Projection = Engine.Instance.Camera.Projection;
            _effect.World      = GetRenderMatrix();
            _effect.CurrentTechnique.Passes[0].Apply();
            _model.Render(_effect, BrakePedalInput > 0);

            WheelModel.BeginBatch();
            foreach (VehicleWheel wheel in Wheels)
            {
                wheel.Render();
            }
        }
示例#8
0
        public void Render()
        {
            Matrix carOrientation = Matrix.Identity;

            carOrientation.Forward = _car.RenderDirection;
            carOrientation.Up      = _car.Up;
            carOrientation.Right   = Vector3.Cross(_car.RenderDirection, _car.Up);
            WheelModel.Render(
                _wheelMatrix *
                Matrix.CreateRotationX(_rotation / _size * 2f) *
                Matrix.CreateRotationY(_steeringAngle * 1.3f) *
                carOrientation *
                Matrix.CreateTranslation(GetOffsetPosition(_renderOffset)),
                _texture);
        }
示例#9
0
        public ActionResult Index()
        {
            var nextSprint = SprintHelper.GetNextSprint();

            ViewBag.Title = $"Teamlunch Sprint {nextSprint}";

            var isWheelTime = SprintHelper.IsWheelTime();

            if (isWheelTime)
            {
                var votesByRestaurant = Repository.GetRestaurants(nextSprint);
                var votedRestaurants  = new List <RestaurantModel>();

                foreach (var restaurant in votesByRestaurant)
                {
                    foreach (var v in restaurant)
                    {
                        votedRestaurants.Add(v.Restaurant);
                    }
                }

                votedRestaurants.Shuffle();
                votedRestaurants.Shuffle();
                votedRestaurants.Shuffle();

                var wheelModel = new WheelModel(nextSprint, isWheelTime, votedRestaurants, votesByRestaurant);
                return(View(wheelModel));
            }
            else
            {
                var restaurant = Repository.GetRestaurants();
                var votes      = Repository.GetVotes(nextSprint);
                var user       = User.Identity.GetUserName();

                IList <RestaurantVote> restaurantVotes = restaurant.Select(r => new RestaurantVote
                {
                    RestaurantId   = r.Id,
                    RestaurantName = r.Name,
                    IsVoted        = votes[user].Any(v => v.Restaurant.Id == r.Id)
                }).ToList();

                var votingModel = new VotingModel(restaurantVotes);
                return(View("Vote", votingModel));
            }
        }
示例#10
0
        private void ProcessButton_Click(object sender, EventArgs e)
        {
            try
            {
                var speed  = double.Parse(speedTextBox.Text);
                var height = double.Parse(heightTextBox.Text);
                var u      = double.Parse(uTextBox.Text);
                var i      = double.Parse(iTextBox.Text);
                var r      = double.Parse(rTextBox.Text);
                var omega  = double.Parse(omegaTextBox.Text);
                var k      = double.Parse(kTextBox.Text);
                var m      = double.Parse(mTextBox.Text);
                var g      = double.Parse(gTextBox.Text);

                var startT = double.Parse(startTTextBox.Text);
                var endT   = double.Parse(EndTTextBox.Text);
                var dt     = double.Parse(dtTextBox.Text);

                var model = new WheelModel
                {
                    Func   = x => Math.Sin(x),
                    Speed  = speed,
                    Height = height,
                    U      = u,
                    I      = i,
                    R      = r,
                    Omega  = omega,
                    K      = k,
                    M      = m,
                    G      = g
                };

                var datas = model.Process(startT, endT, dt);

                outputTextBox.Text = string.Join(Environment.NewLine, datas.Select(data =>
                                                                                   $"T: {data.T:F2}. S: {data.S:F2}. Y0: {data.Y0:F2}. y0': {data.DeltaY0:F2}. y0'': {data.DeltaDeltaY0:F2}. N: {data.N:F2}. Y: {data.Y:F2}. Y': {data.DeltaY:F2}. Y'': {data.DeltaDeltaY:F2}"));
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.ToString(), @"Exception:", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#11
0
 public Paleta(WheelModel wheelModel) : this()
 {
     this.wheelModel = wheelModel;
 }