C\#실시 간 접선 도,파형 도 그리 기
관련 지식 포인트:
Chart 컨트롤 러 는 기능 이 강해 서 기둥 모양 의 그림,접 는 선 그림,파형 도,떡 모양 의 그림 을 그 릴 수 있 고 그림 에 대한 개발 과 맞 춤 형 제작 을 크게 간소화 할 수 있 습 니 다.
Chart 컨트롤 의 관련 개념:
주로 두 가지 방법 이 있다.
-----------------------------------------------------------------------------------------------------------
효과 도
다음 과 같 습 니 다[초기 화 단 추 를 먼저 클릭 하고 시작 단 추 를 클릭 합 니 다]:
접선 도[접선 도,[0,100]사이 의 즉시 수 를 취하 여 채 우 는 것 입 니 다]:
파형 도[파형 도,정 현 치 를 취하 고 50 배 확대 한 다음 에 50 위로 이동 합 니 다]
핵심 코드
코드 는 다음 과 같 습 니 다:
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.Windows.Forms.DataVisualization.Charting;
namespace WindowsFormsApplication1
{
public partial class RealChart : Form
{
private Queue<double> dataQueue = new Queue<double>(100);
private int curValue = 0;
private int num = 5;//
public RealChart()
{
InitializeComponent();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnInit_Click(object sender, EventArgs e)
{
InitChart();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnStart_Click(object sender, EventArgs e)
{
this.timer1.Start();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnStop_Click(object sender, EventArgs e)
{
this.timer1.Stop();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
UpdateQueueValue();
this.chart1.Series[0].Points.Clear();
for(int i=0;i<dataQueue.Count;i++){
this.chart1.Series[0].Points.AddXY((i+1), dataQueue.ElementAt(i));
}
}
/// <summary>
///
/// </summary>
private void InitChart() {
//
this.chart1.ChartAreas.Clear();
ChartArea chartArea1 = new ChartArea("C1");
this.chart1.ChartAreas.Add(chartArea1);
//
this.chart1.Series.Clear();
Series series1 = new Series("S1");
series1.ChartArea = "C1";
this.chart1.Series.Add(series1);
//
this.chart1.ChartAreas[0].AxisY.Minimum = 0;
this.chart1.ChartAreas[0].AxisY.Maximum =100;
this.chart1.ChartAreas[0].AxisX.Interval = 5;
this.chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Silver;
this.chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Silver;
//
this.chart1.Titles.Clear();
this.chart1.Titles.Add("S01");
this.chart1.Titles[0].Text = "XXX ";
this.chart1.Titles[0].ForeColor = Color.RoyalBlue;
this.chart1.Titles[0].Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
//
this.chart1.Series[0].Color = Color.Red;
if (rb1.Checked)
{
this.chart1.Titles[0].Text =string.Format( "XXX {0} ",rb1.Text);
this.chart1.Series[0].ChartType = SeriesChartType.Line;
}
if (rb2.Checked) {
this.chart1.Titles[0].Text = string.Format("XXX {0} ", rb2.Text);
this.chart1.Series[0].ChartType = SeriesChartType.Spline;
}
this.chart1.Series[0].Points.Clear();
}
//
private void UpdateQueueValue() {
if (dataQueue.Count > 100) {
//
for (int i = 0; i < num; i++)
{
dataQueue.Dequeue();
}
}
if (rb1.Checked)
{
Random r = new Random();
for (int i = 0; i < num; i++)
{
dataQueue.Enqueue(r.Next(0, 100));
}
}
if (rb2.Checked) {
for (int i = 0; i < num; i++)
{
// curValue [0,360]
curValue = curValue % 360;
// , 50 , 50
dataQueue.Enqueue((50*Math.Sin(curValue*Math.PI / 180))+50);
curValue=curValue+10;
}
}
}
}
}
비고타이머 타이머 타이머[마이크로소프트 자체 컨트롤]:
설명:같은 시간 간격 으로 사용자 정의 일 을 유발 한 다 는 뜻 이다.사용자 가 필요 로 하 는 기능 을 실현 하 다.이 예 는 대기 열 에 있 는 데 이 터 를 정기 적 으로 업데이트 하고 도 표를 새로 고 치 는 데 사 용 됩 니 다.
상용 설명:
원본 코드 가 필요 하기 때문에 원본 다운로드 링크 를 여기에 두 십시오.스스로 다운로드 하 십시오.감사합니다.
원본 코드 다운로드
이상 은 C\#실시 간 접 는 선 그림,파형 그림 의 상세 한 내용 입 니 다.C\#접 는 선 그림,파형 그림 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.