Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 13 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 26.11.2005
Предлагаю обсуждать Managed DirectX.

Вот у меня первый вопрос:
Кто-нибудь подскажет как правильно использовать координаты мыши?

public void ReadMouseStatement()
{

MouseState mMouseState = new MouseState();
mMouseState = mMouse.CurrentMouseState;
spinX -= (mMouseState.X);
spinY -= (mMouseState.Y);
mLastPosition = mMouseState;
mCam.View.RotateYawPitchRoll(Geometry.RadianToDegree(spinX), Geometry.RadianToDegree(spinY), 0.0f);
}
Использую что-то тапа этого и получаю разворот максимум на 170 градусов.



Партнер
 

Member
Статус: Не в сети
Регистрация: 24.02.2004
Откуда: Minsk
У меня вопрос немного попроще: как создать палитру цветов на форме в C#?


 

Member
Статус: Не в сети
Регистрация: 26.11.2005
ColorDialog colorDialog1 = new ColorDialog ();

colorDialog1.ShowDialog();

Правда не на форме...

_________________
www.lispert.com


 

Member
Статус: Не в сети
Регистрация: 24.02.2004
Откуда: Minsk
Black_And писал(а):
ColorDialog colorDialog1 = new ColorDialog ();

colorDialog1.ShowDialog();

Ещё бы из этой политры отловить координаты цвета RGB и всунуть эти координаты на форму (или окошко с выбранным цветом)... ЭТО РЕАЛЬНО?!


 

Member
Статус: Не в сети
Регистрация: 26.11.2005
ColorDialog colorDialog1 = new ColorDialog();

colorDialog1.ShowDialog();

// button1 - просто для примера
this.button1.BackColor = colorDialog1.Color;

на скорую руку попробовал все ок

Или может я не въехал в вопрос???

_________________
www.lispert.com


 

Member
Статус: Не в сети
Регистрация: 24.02.2004
Откуда: Minsk
НА форму нужно всунуть три GroupBox (или аналогичное) (для ввода трёх координат цвета RGB) + одно окно PictureBox (или Panel, или ещё какое) для выбранного цвета из нашей палитры.
В итоге должно получится такое: У нас появляется политра, мы выбирает в ней цвет, нажимаем ОК, а на форме появляется три GroupBox с координатами выбранного цвета и PictureBox с изображением выбранного цвета.


 

Member
Статус: Не в сети
Регистрация: 26.11.2005
Так тут тоже проблем не должно быть

private void button1_Click(object sender, EventArgs e)
{
ColorDialog colorDialog1 = new ColorDialog();

colorDialog1.ShowDialog();
this.groupBox1.BackColor = Color.FromArgb(colorDialog1.Color.R, 0, 0);
this.groupBox2.BackColor = Color.FromArgb(0, colorDialog1.Color.G, 0);
this.groupBox3.BackColor = Color.FromArgb(0, 0, colorDialog1.Color.B);
}

_________________
www.lispert.com


 

Member
Статус: Не в сети
Регистрация: 24.02.2004
Откуда: Minsk
Огромное спасибо Black_And, чуть что буду обращаться...


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Dima Kharitonov
Если хочешь явно в RGB, то это можно сделать с помощью FromArgb(R, G, B);
Код:
this.button1.BackColor = Color.FromArgb(210, 80, 50);


 

Member
Статус: Не в сети
Регистрация: 24.02.2004
Откуда: Minsk
Новая проблема:
Теперь на форме нужно нарисовать палитру градации черного, длинна политры равна 256 пикселей, причем первый пиксел черный, а последующие светлее (последний пиксел белай) + чтобы при наведении на любой пиксел выдавало в текстовом окне на форме его координаты (Х,У) (координаты Х будут меняться от 0 до 256, а У, допустим, от 0 до 40), например, [200],[28].


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Dima Kharitonov
Dima Kharitonov писал(а):
Теперь на форме нужно нарисовать палитру градации черного, длинна политры равна 256 пикселей, причем первый пиксел черный, а последующие светлее (последний пиксел белай)

Смотри LinearGradientBrush из Drawing2D.

Dima Kharitonov писал(а):
чтобы при наведении на любой пиксел выдавало в текстовом окне на форме его координаты (Х,У)

Смотри событие MouseMove.


 

Member
Статус: Не в сети
Регистрация: 24.02.2004
Откуда: Minsk
Чего-то я с синтаксисом в LinearGradientBrush из Drawing2D не разберусь.
Да и с MouseMove у меня не всё идеально.


 

Member
Статус: Не в сети
Регистрация: 05.01.2005
Dima Kharitonov
Dima Kharitonov писал(а):
Чего-то я с синтаксисом в LinearGradientBrush из Drawing2D не разберусь.

Странно :) – всего 8 перезагрузок. ;)
Думаю, что для тебя вполне подойдет:

Код:
LinearGradientBrush lgb = new LinearGradientBrush(r, Color.Black, Color.White, LinearGradientMode.Vertical);

Где r соответственно Rectangle:
Нарисовать, надеюсь, сможешь и сам?

Dima Kharitonov писал(а):
Да и с MouseMove у меня не всё идеально.

А это типа как? :)
Не телепат, блин - не сложилось…
Короче вот:

Код:
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private Point rTopLeft = new Point(10, 10);
        private Size rSize = new Size(100, 100);

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            Graphics dc = e.Graphics;
            Rectangle r = new Rectangle(rTopLeft.X, rTopLeft.Y, rSize.Width, rSize.Height);
            LinearGradientBrush lgb = new LinearGradientBrush(r, Color.Black, Color.White, LinearGradientMode.Vertical);
            dc.FillRectangle(lgb, rTopLeft.X, rTopLeft.Y, rSize.Width, rSize.Height);
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if ((e.X >= rTopLeft.X && e.X <= rSize.Width + rTopLeft.X) && (e.Y >= rTopLeft.Y && e.Y <= rSize.Height + rTopLeft.Y))
                this.Text = "X: [" + e.X.ToString() + "], Y: [" + e.Y.ToString() + "]";
            else
                this.Text = "";         
        }
    }
}

Справка рулит. ;)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 13 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan