Ricerca 
it-ITen-US
Registrazione
Accedi
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Stampa     


DotNetWork Forums
[C#] drawline e split string con coordinate x y
Ultimo Post 14 mar 2010 18.36 by gigi. 44 Risposte.
Stampa immediata
Ordina:
PrevPrev ProssimoProssimo
Non sei autorizzato ad inviare una risposta.
Page 2 di 2 << < 12
Autore Messaggi

Posts:90

--
13 mar 2010 21.37  
allora, sto faccendo conto mio con i vostri codici che mi avete pasato.
ora ho un problema recupero il file e lo metto nella textbox però la textbox mi prende solo i primi valori,
quindi chiedo ad voi se sapete come fare per prendere tutto nella textobx ho messo anche un for etc.
ma non funziona , perchè se inserisco il codice cosi: 0;100;30;200 , il secondo blocco di numeri non lo vede.

ecco il codice:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace _VirtualCnc
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}

private void Simula_Click(object sender, EventArgs e)
{

Elabora_.Enabled = true;
Elabora_.Interval = 10;

pBelaboarazione.Value = 100;
this.box.Image = null;

Bitmap bmp = new Bitmap(this.box.Width / 2, this.box.Height / 2);
Graphics g = Graphics.FromImage(bmp);
Pen redPen = new Pen(Color.Red, 1 / g.DpiX);
redPen.Width = 2;

g.PageUnit = GraphicsUnit.Millimeter;

List pt = new List();
string line = "" + tbCode.Text + "";

string[] coordinate = line.Split(';');
foreach (string s in coordinate)
{
int x = Convert.ToInt32(coordinate[0]);
int y = Convert.ToInt32(coordinate[1]);

PointF p = new PointF(x, y);
pt.Add(p);

Pen pen = new Pen(Color.Black, 3);
g.DrawLine(pen, 0, 0, p.X, p.Y);
pBelaboarazione.Value = 100;
}
//int x = Convert.ToInt32(coordinate[0]);
//int y = Convert.ToInt32(coordinate[1]);

this.box.Image = bmp;

} // Pulsante simula

private void box_Paint(object sender, PaintEventArgs e)
{




}

private void ApriProgramma_Click(object sender, EventArgs e)
{

OpenFileDialog open = new OpenFileDialog();
open.Filter = "File di Testo (*.txt)|*.txt|File Cnc(*.cnc)|*.cnc";
if (open.ShowDialog() == DialogResult.OK)
{
tbCode.Text = File.ReadAllText(open.FileName) + ""; // Aggiunta codice alla listbox
sbp_file.Text = "File Caricato: " + open.FileName + ""; // barra di stato per recuperare il file.
}
}// Apri programma

private void Elabora__Tick(object sender, EventArgs e)
{
}

private void MenuFileEsci_Click(object sender, EventArgs e)
{
this.Close();
} // Pulsante Esci Menu

private void FermaElaborazione_Click(object sender, EventArgs e)
{
Elabora_.Enabled = false;
pBelaboarazione.Value = 0;
box.Refresh();
}

private void MenuGuida_Click(object sender, EventArgs e)
{
AboutBox1 about = new AboutBox1();
about.Show();
} // Pulsante che ferma la simulazione
}
}

Grazie aspetto che qualcuno mi aiuti.
Grazie mille.



Posts:90

--
13 mar 2010 21.39  
List< PointF > pt = new List< PointF >();

questa riga sopra va messa sotto a :

g.PageUnit = GraphicsUnit.Millimeter;



Posts:90

--
14 mar 2010 17.19  
Posto tutto il codice completo che ho un pò imbrogliato ma funziona lo stesso:

[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace _VirtualCnc
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}

private void ApriProgramma_Click(object sender, EventArgs e)
{

OpenFileDialog open = new OpenFileDialog();
open.Filter = "File di Testo (*.txt)|*.txt|File Cnc(*.cnc)|*.cnc";
if (open.ShowDialog() == DialogResult.OK)
{
tbCode.Text = File.ReadAllText(open.FileName) + ""; // Aggiunta codice alla listbox
sbp_file.Text = "" + open.FileName + ""; // barra di stato per recuperare il file.
}
tbCode.Enabled = false;
}// ApriProgramma_Click

private void Simula_Click(object sender, EventArgs e)
{

List pt = new List();
this.box.Image = null;

Bitmap bmp = new Bitmap(this.box.Width / 2, this.box.Height / 2);
Graphics g = Graphics.FromImage(bmp);
Pen redPen = new Pen(Color.Red, 1 / g.DpiX);
redPen.Width = 2;

g.PageUnit = GraphicsUnit.Millimeter;
using (StreamReader sr = new StreamReader("" + sbp_file.Text + ""))
{
string[] coordinate;

int x1 = 0;
int y1 = 0;
while (!sr.EndOfStream)
{
coordinate = sr.ReadLine().Split(','); // tra apici va il carattere che separa i valori
int x = Convert.ToInt32(coordinate[0]); // convertiamo in valori numerici interi, ma DrawLine accetta anche float
int y = Convert.ToInt32(coordinate[1]); // convertiamo in valori numerici interi, ma DrawLine accetta anche float
g.DrawLine(redPen, x1, y1, x, y);
x1 = x; // x1 contiene il valore x di partenza per la prossima linea
y1 = y; // y1 contiene il valore y di partenza per la prossima linea
}
redPen.Dispose();
g.Dispose();
sr.Close();
sr.Dispose();
}
this.box.Image = bmp;
} // Simula_Click

private void FermaElaborazione_Click(object sender, EventArgs e)
{
this.box.Refresh();
pBelaboarazione.Value = 0;
}// FermaElaborazione_Click

private void MenuFileEsci_Click(object sender, EventArgs e)
{
this.Close();
}// MenuFileEsci_Click

private void Edita__Click(object sender, EventArgs e)
{
tbCode.Enabled = true;
}

private void frmMain_Load(object sender, EventArgs e)
{
tbCode.Enabled = false;

}// Edita__Click

private void SalvaProgramma_Click(object sender, EventArgs e)
{
// create a writer and open the file
using (TextWriter tw = new StreamWriter("" + sbp_file.Text + ""))
{

// write a line of text to the file
tw.WriteLine("" + tbCode.Text + "");

// close the stream
tw.Close();
}

}// SalvaProgramma_Click

}
}[/code]

Mi dite come fare ad fare che traccia linea per linea , anche se avevamo preso già dei esempi , ma non mi piace il modo che è stato scritto , io penso di mettere quell pulsante simula in un timer e dargli il tempo di disegnare liena a linea.

Mi dite come fare?.

grazie.



Posts:90

--
14 mar 2010 17.28  
ha scordavo , vorrei fare un'altro sistema di coordinate ovvero: 000.000,000.000,000.000
x,y,z

Voglio creare il mio sistema di coordinate diverso da altri.

Grazie mille.



Posts:90

--
14 mar 2010 18.36  
ho risolto, grazie mille a tutti. Ho mescolato il codice di max con il tutorial5.zip.

e mi ha funzionato.


grazie.


Non sei autorizzato ad inviare una risposta.
Page 2 di 2 << < 12


Active Forums 4.1
       
Articoli
Lavorare con i Generic - Led Control
Creare un controllo che simula i moduli LED
2007/11/11 | Autore: Alberto De Luca
Fritto misto - Classi di uso comune (parte 2)
Helper: Una classe per la Serializzazione XML delle classi dati
2007/10/21 | Autore: Sabrina Cosolo
Unit testing del codice (parte 2)
Generiamo alcuni unit test per la libreria Helper base ADO.NET
2008/03/09 | Autore: Sabrina Cosolo
Programmer Paster Addin per Expression Web 1 e 2
Implementare un Addin per Expression Web 1 e 2 che usa la libreria ProgrammerPaster
2009/02/26 | Autore: Rudy Azzan
SQL Server Nozioni base (parte 2)
Come creare un database in SQL Server Usando solo il codice SQL
2008/03/09 | Autore: Sabrina Cosolo
Programmer Paster Addin per Expression Web 1 e 2
Implementare un Addin per Expression Web 1 e 2 che usa la libreria ProgrammerPaster
2009/02/26 | Autore: Rudy Azzan
Panoramica degli elementi base del WPF
Come iniziare a capire com'è fatto il WPF [Windows Presentation Foundation] (parte 2)
2007/07/30 | Autore: Patrizia Cosolo
ADO.NET - Mini guida per l'utente
Introduzione agli oggetti dati di ADO.NET
2007/07/26 | Autore: Alberto De Luca
    Stampa     
Home|Forums|Blogs|Mappa del sito
© 2007-2012 by DotNetWork  .:.  Condizioni d'uso  .:.  Privacy  .:.  Accedi  .:.