|
GreenGiant83 wrote: I would be fine even with a 2d rotation
Check out System.Drawing.Drawing2d.Matrix class. There are other classes in the Drawing2d namespace that may help you with your rotations.
Alternately, you *could* use the free Lutz Reflector[^] tool to see how XNA's Matrix class rotates 3d rotations, then do a little copy & paste job into your own code.
|
|
|
|
|
I have found lots of articles explaining how to use the matrix class to do rotation with GDI+ stuff, the problem is that the GDI stuff takes the matrix and processes it. As I am not wanting to rotate graphics, but the actual data points themselves these articles do not help me much. Can anyone shoe me or point me to an article that can show me how to several points and rotate them, matrix math or otherwise?
Thanks,
|
|
|
|
|
I mentioned reverse-engineering XNA's Matrix class and seeing the multiplications done to the 3d points (a struct in XNA called Vector3). You should do this and look at the methods on there, such as Matrix.CreateRotationX, .CreateRotationY, .CreateRotationZ. See how those methods are applying rotation to 3d points, then you can implement a similar solution on your end.
If you're curious about how matrices work from a mathematics perspective, see Wikipedia's article on matrix multiplication[^].
|
|
|
|
|
Hi all
I'm totaling up a list of items in a Binding source and I am just having a small problem with syntax for incrementing the value of a key if it already exists
any help is greatly appreciated line 16 below
[code]SortedList mySortedList = new SortedList();
foreach (DataRowView view in myBindingSource)
{
if ((string)view["group_name"] == "USAT-Desktop")
{
view["group_name"] = "TEST TEST";
}
if (mySortedList.Contains(view["category_name"])== false)
{
mySortedList.Add(view["category_name"], 1);
}
else
{
//how do I ++ the value of the key if it already exists?
//mysortedlist[view["category_name"]].value +=1?
}[/code]
|
|
|
|
|
Hi,
mysortedlist[view["category_name"]] = 1+(int)mysortedlist[view["category_name"]];
should do it.
BTW: the above code line was set inside <pre> </pre> tags;
they work much better than [code] [/code] !
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
I'll give it a try
sorry about the tags I always forget going from form to form this one is a little different
|
|
|
|
|
that works great I just tried it
thanks so much I was close but I don't think I would have gotten that for a while
|
|
|
|
|
you're welcome.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Someone else suggested this solution
private SortedList<string, int> getTotals(BindingSource BS, string column)
{
SortedList<string, int> list = new SortedList<string, int>();
string name;
foreach (DataRowView row in BS)
{
name = (string)row[column];
if (list.ContainsKey(name))
{
list[name]++;
}
else
{
list.Add(name, 1);
}
}
return list;
}
Side thought
is there an easy way to "strip" the key values into an array that i could feed a combobox?
|
|
|
|
|
Hi,
if you have .NET 2.0 or better, you can use generics such as SortedList<string,int>
and that should allow you to do list[name]++;
so it gives you the same base idea, a more readable source, and it eliminates the
need to cast to int, so it does save some CPU cycles.
I trust that is what you meant, but if so the HTML eater has swallowed it.
list.Keys is the collection that holds all the key values, I guess you could feed it directly
into a ComboBox through its DataSource property.
If you need to know more, please read up on it either on your local MSDN that came with
Visual Studio, or on http://msdn2.microsoft.com[^]
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Hi all.
I have an application which reads a msmq path from the config file and passes to an storedprocedure.The entry in config file is as follows
<add key="XMLMSMQRecievePath" value="FormatName:DIRECT=OS:TESTCLUSTER\Private$\Sports-XML-IN\xmlcache">
Now i am storing it a string variable called "XMLMSMQRecievePath" and passed to the storedprocedure name "UpdateAuditLogDetails"
using folowing stmts
daUpdateAuditLogDetails.SelectCommand.Parameters["@XMLMSMQRecievePath"].Value = XMLMSMQRecievePath;
daUpdateAuditLogDetails.Fill(dsUpdateAuditLogDetails, "UpdateAuditLogDetails");
but i am getting the error as following
Error, Number = 0x10001165, Source = \"MSMQQueueInfo\", Desc = \"The specified format name is invalid. \""}
My storeed procedure accepts a varchar of size 2000 for it,Can any one help me on this
Regards
DilipRam
|
|
|
|
|
I think "XMLMSMQRecie vePath" is spelled wrong, but I'm just guessing.
|
|
|
|
|
Hi
No its not any thing realted with spelling...
Regards
DilipRam
|
|
|
|
|
i have two homework:
the first homework :when i use Directory.GetCurrentDirectory(),it return current dirrector is debug directory
the second one:it return Release Directory
I don't understand when return Realeas and When return Debug
please help me
thanks
|
|
|
|
|
Actually GetCurrentDirectory Method returns the last directory used in your application
Obviously when you call it at first you will get the executable path directory so if you set the build mode to Debug it will give you the Debug path and if you set it to Release mode it will give you Release path.
and if you browse another path in your program you will have it if you call GetCurrentDirectory method
hope the post help
|
|
|
|
|
If you build your application under the Debug configuration in Visual Studio (or just hit F5 to start the app under the debugger), it will use the Debug directory. If you build your app using the Release configuration in Visual Studio, it will use the Release directory. Simply put, that's where the built .exe goes when you build your application.
|
|
|
|
|
Hi All,
I have a listview with two columns and in my first column i m creating a textbox when i double click the listviewitem.And i have context menu for listview by which when there is any item selected and i press Del it will delete the selected item .Now , when i m in textbox and i write something and press to Del to delete a character it deletes the listviewitem while i want to delete only the character.
How can i fix it , please give me some help.
Thanx.
Praveen Sharma
|
|
|
|
|
Are you sure you use ListView.KeyPress Event for deleting an Item ?
|
|
|
|
|
No i m not using it , i m using context menu and for deleting a item i have set the shortcut key (Delete), but when i m in the textbox and i want to delete a character in textbox and press Delete key the message for deleting the listview item is coming up which i don't want i only want to delete a listviewitem when i m not in the textbox.
Praveen Sharma
|
|
|
|
|
Hello,
I would like to use a progress bar to monitor the loading of my data grid. I would like some help in selecting the best events in the bindingsource and/or DataGridView to increment the progress bar on my screen and setting the maximum value to increment too.
I tried using DataGridView.RowCount for the maximum value of the pbar and the event GridRowsAdded to increment the value but I get an error when I filter the data using a dataview since the RowCount is not accurate until the DataGridView is populated.
Is there an event in the bindingSource that would give me the maximum value before the data is added to the grid? Or is there some other way to do this that makes more sense?
The previous help on this board helped my solution and I appreciate that. Thanks.
Boyd
Boyd
|
|
|
|
|
Does anybody know if there's a way to interact with a printer that prints onto CD's? I've googled it and haven't found anything promising. The app that I'm writing is going to need it. Any ideas?
may your code be error free
|
|
|
|
|
The code below reads data from a binary file into an instance, then writes that instance to an instance array (forgive me if my terminology is wrong, I'm self taught ^^)
The first time it runs through the loop it works fine, but as it goes through the second iteration it begins to over write the data in ItemsArray[0], even though the counter c is now 1 AND i haven't even told it to write to the array.
It is as if it were writing the data to the array before being told to :s
I hope I've made the problem clear, if not, just ask for clarification
Am i making an obvious error?
Thanks ^^
Items[] ItemsArray = new Items[NumberOfRecords];<br />
Items Item = new Items();<br />
<br />
int c = 0;<br />
<br />
while (c < NumberOfRecords)<br />
{<br />
bw.Seek((c * 180), SeekOrigin.Begin);<br />
Item.SetName(br.ReadString());
bw.Seek((c * 180) + 40, SeekOrigin.Begin);<br />
Item.SetItemType(br.ReadString());<br />
bw.Seek((c * 180) + 60, SeekOrigin.Begin);<br />
Item.SetDescription(br.ReadString());<br />
bw.Seek((c * 180) + 160, SeekOrigin.Begin);<br />
Item.SetWeight(br.ReadInt32());<br />
Item.SetWeaponDamage(br.ReadInt32());<br />
Item.SetWeaponRange(br.ReadInt32());<br />
Item.SetWeaponMultiShot(br.ReadInt32());<br />
Item.SetArmourRate(br.ReadInt32());<br />
<br />
ItemsArray[c] = Item;
<br />
<br />
c++;<br />
<br />
}
|
|
|
|
|
in your iterations you didn't create a new instance of your object Items because it's out of the while loop and because it's a reference type you simply write in it again and just create a new pointer ItemsArray[c] to it so all Data in the ItemsArray would be the same
for solving this, just put the Items Item =new Item(); inside the while Loop and it would be solved I think
good luck
|
|
|
|
|
It is because you are putting the same Item in every slot in the array. You need to put the line:
Items Item = new Items();
inside the loop.
Upcoming events:
* Glasgow: Mock Objects, SQL Server CLR Integration, Reporting Services, db4o, Dependency Injection with Spring ...
"I wouldn't say boo to a goose. I'm not a coward, I just realise that it would be largely pointless."
My website
|
|
|
|
|
hi
you assign Item only once. so each time you say itemsArray[c] = Item; , you assign the same object go another item in your array. but it's just a reference. so if you do anything with the object by calling Item.SetName(...) you modify the object that's referenced by multiple entries in your array.
calling Item = new Items() after ItemsArray[c] = Item; should help you out
greets
m@u
|
|
|
|