|
It will not work.
My Requirement is If I am Drawing Star or Triangle from Polygon and i want to shift (Align) it to Left.
If you can think then I Can.
|
|
|
|
|
It is maths that you are probably struggling with. Start with offset values of say 10. Then gradually increase or decrease it till you reach the right alignment.
|
|
|
|
|
So, find the minimum X coordinate of your polygon, and use a negative version of that as the xOffset.
Point[] shape = new Point[] { new Point(50, 50),
new Point(100, 250),
new Point(200, 5),
new Point(250, 50),
new Point(300, 100),
new Point(350, 200),
new Point(250, 250)};
public void DrawPolygonPoint(PaintEventArgs e)
{
Pen blackPen = new Pen(Color.Black, 3);
Pen redPen = new Pen(Color.Red, 1);
e.Graphics.DrawPolygon(redPen, shape);
int minX = int.MaxValue;
foreach (Point p in shape)
{
if (p.X < minX)
{
minX = p.X;
}
}
Point[] curvePoints = new Point[shape.Length];
int i = 0;
foreach (Point p in shape)
{
curvePoints[i++] = AddOffset(p, - minX, 0);
}
e.Graphics.DrawPolygon(blackPen, curvePoints);
redPen.Dispose();
blackPen.Dispose();
}
Draws the original in red, and a left aligned version in black. Note that I have moved your individual points into an array to make it easier to work with.
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
Exactly i find it.
Thanks Sir.
If you can think then I Can.
|
|
|
|
|
Welcome!
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
your pens wear out quite easily, are you applying too much pressure to them? good thing you dispose them properly.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
They don't last like they used to!
Brushes seem to get bristly and have to be thrown out as well...
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
I don't think what r u talking about.
If you can think then I Can.
|
|
|
|
|
|
GlobX wrote: Who voted this down
Some noob with a lower rep than me.
|
|
|
|
|
Haha thanks man - maybe "pun" means "get stuffed" in a language I'm yet to hear of? =P
|
|
|
|
|
Have a look at the Graphics.TranslateTransform() method, it will apply a translation (i.e. a shift) to everything you draw later on. Warning: calling it again on the same Graphics works cumulatively.
BTW: for objects that have a Dispose() method you should call that method when you don't need them any more; this is often forgotten for drawing objects such as Pens and Fonts. Alternatively, and better, is not to allocate new objects all the time inside a method that gets called a lot (such as OnPaint). Instead allocate the objects once and keep them around as class members.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Hello Sir,
How can i use to shift polygon to left side with the help of TranslateTransform.
my polygon program is describe in previous post.
If you can think then I Can.
|
|
|
|
|
Hello,
I am trying to make and c# application using sessions to control the app access, somebady knows how to do it?
Regards.
|
|
|
|
|
Are you sure? Sessions are normally web related, apps are normally PC related.
What are you actually trying to do?
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
I mean Roles, I want that some users can see an especific window and someone diferente can not do it.
|
|
|
|
|
What ur trying to do?????
If you can think then I Can.
|
|
|
|
|
If it is a web application, take a look at ASP.Net Role provider and Session management.
If this is a windows based application, you will have to do it on your own.
1. Set up the Role table in the database or configuration file (not recommended) as desired.
2. Then set up a Rights table. This table should essentially have the list of operations that can be performed.
3. Now, create a Role_Right_Map table. This will be 1 to many relation table between Role and Rights. This will define which Role can do what.
4. Now set up a user table. This table will have your user credentials and other details.
5. Next, make a Role_User_map. This can be a one to may relation based table between user and role.
Now, you have your setup ready. Next, when the user logs in, check for the role and corresponding rights. Based on that the available functionality will be decided.
As far as session goes, keep track of the login time in some static variable. You will also need one more static variable say activity tracker. If there is no activity done for certain amount of time, log the user out.
Possible problems in doing this:
1. If it is a desktop application with database on the client computer, anyone can make changes to the Roles and Rights. Suggested resolution can be to encrypt data in those tables.
2. User can change the system datetime which will negate all the session management rules you put in. Suggested resolution can be like this: When the user logs in, start a timer in a different thread. Now, reset the timer on every activity. If the timer has ticked for your session value (say 10 mins), log out the user.
|
|
|
|
|
Tell me what you want to do exactly?
Generally sessions are related ASP.NET
Tell me exactly what type of application you wanna create.
|
|
|
|
|
I have the following code (I am learning sockets for the first time):
static void Main()
{
var listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 80);
listener.Start();
bool serverIsOnline = true;
while (serverIsOnline)
{
Console.WriteLine("Polling for a client");
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("Client {0} has connected", client.Client.RemoteEndPoint);
Console.WriteLine("Handling client");
serverIsOnline = HandleClient(client);
Console.WriteLine("Finished handling client");
Console.WriteLine("Closing client");
client.Close();
}
listener.Stop();
}
private static bool HandleClient(TcpClient client)
{
using(var writer = new StreamWriter(client.GetStream()))
{
writer.WriteLine("Welcome to the system...");
writer.Flush();
}
return true;
}
When I open the browser (firefox and IE) and enter 127.0.0.1 it sometimes displays the welcome message, but it mostly just displays "The connection was reset".
What could be causing this and how would I resolve this issue?
Thanks
modified on Friday, April 8, 2011 10:50 PM
|
|
|
|
|
The reason is that you're closing the connection before all the bytes have been transmitted.
It takes time to transmit the bytes, but you go straight from calling HandleClient to calling client.Close().
Don't explicitly close client connections until you terminate the server program.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Richard Andrew x64 wrote: calling HandleClient to calling client.Close().
You are completly right, thank you
|
|
|
|
|
Your server isn't a HTTP server, and what you're sending back isn't a valid HTTP header. 'The connection was reset' means that it was closed before a valid header was received (roughly speaking). You need a lower level test client than a browser if you are writing a custom server.
Alternatively, get yourself some HTTP server code (for example, mine[^] ).
|
|
|
|
|
Hi,
I am having issues for a project for work and was wondering if anybody can help me. I am trying to calculate The percentage for refurb for the day. The formula is Refurb_Rate = (totalRefurb / totalUnits * 100) The program is supposed to supposed count the refurb in the db and return a value in a textbox. I initialized my values to 0, but my problem is how do I get it to calculate each time a user scans in a unit to be refurbed. Anything I try to do gives me an error in my program. Right now it's returning a value of of 1 because I added RefurbRate++. Can anyone help me? Thanks.
Justin
Here is what I've done with my code:
private int GetRefurbRate()
{
string sql = "";
int Refurb_Rate = 0;
int totalRefurb = 0;
int totalUnits = 0;
string error_msg = "";
sql = "SELECT COUNT(*) " +
"FROM " + schema + ".repair_part rp " +
"WHERE rp.repair_ord = '" + txtRO.Text + "' ";
while (true)
{
if (!myDb.RunSql(sql, true))
{
error_msg = "DBError for getting Refurb Rate";
break;
}
if (myDb.dbRdr.HasRows)
{
if (myDb.dbRdr.Read())
{
try
{
Refurb_Rate = (totalRefurb / totalUnits * 100);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
Refurb_Rate++;
}
break;
}
myDb.dbRdr.Close();
if (error_msg != String.Empty)
{
MessageBox.Show(error_msg, "Get Refurb Rate",
MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
return Refurb_Rate;
|
|
|
|
|