人体节律

智者知已应修善业 2012-04-12 05:11:21
有人做过吗?
不知道使用什么控件显示?
可以给个实例代码参照?
...全文
192 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这么没高手来?!
找个例子:
private void Form1_Load(object sender, EventArgs e)
{
//double[] 数据 = { 2, 6, 4, 5, 3, 2, 5, 6, 3, 2, 5, 6 };

//string[] 标注 = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };

//曲线显示.Series["智力"].Points.DataBindXY(标注, 数据);
//-----------------------------------------------------------
//double yValue = 50.0;
//Random random = new Random();
//for (int pointIndex = 0; pointIndex < 20000; pointIndex++)
//{
// yValue = yValue + (random.NextDouble() * 10.0 - 5.0);
// 曲线显示.Series["智力"].Points.AddY(yValue);
//}

//// Set fast line chart type
//曲线显示.Series["智力"].ChartType = SeriesChartType.FastLine;
//-------------------------------------------------------------
// Set primary x-axis properties
曲线显示.ChartAreas["Default"].AxisX.LabelStyle.Interval = Math.PI;
曲线显示.ChartAreas["Default"].AxisX.LabelStyle.Format = "##.##";
曲线显示.ChartAreas["Default"].AxisX.MajorGrid.Interval = Math.PI;
曲线显示.ChartAreas["Default"].AxisX.MinorGrid.Interval = Math.PI / 4;
曲线显示.ChartAreas["Default"].AxisX.MinorTickMark.Interval = Math.PI / 4;
曲线显示.ChartAreas["Default"].AxisX.MajorTickMark.Interval = Math.PI;
曲线显示.ChartAreas["Default"].AxisY.MinorGrid.Interval = 0.25;
曲线显示.ChartAreas["Default"].AxisY.MajorGrid.Interval = 0.5;
曲线显示.ChartAreas["Default"].AxisY.LabelStyle.Interval = 0.5;

// Add data points to the series that have the specified X and Y values
for (double t = 0; t <= (2.5 * Math.PI); t += Math.PI / 6)
{
double ch1 = Math.Sin(t);
double ch2 = Math.Sin(t - Math.PI / 2);
曲线显示.Series["Channel 1"].Points.AddXY(t, ch1);
曲线显示.Series["Channel 2"].Points.AddXY(t, ch2);
}
}
  • 打赏
  • 举报
回复
有人用过[Chart 控件]?
有的话给个示例代码,感谢不尽!!!
  • 打赏
  • 举报
回复
但是还没告诉我用什么控件来显示,比如我想把智力、情绪、体力分开来显示还有综合显示的?用选项卡分4个来显示?
后生可谓_ 2012-04-17
  • 打赏
  • 举报
回复
飘过!~~
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

是个人智利体力心情的那个变化图吧
[/Quote]

是的,想写个人体3节律的软件[智力、情绪、体力]的,以上中文变量就是修改的部分;只是不知道像[小灵通人体节律]软件那条弦线能点击的效果是怎么实现的?
xyytuo 2012-04-17
  • 打赏
  • 举报
回复
startstartsvip 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:

是个人智利体力心情的那个变化图吧


是的,想写个人体3节律的软件[智力、情绪、体力]的,以上中文变量就是修改的部分;只是不知道那条弦线能点击的效果是怎么实现的?
[/Quote]

1) 按鼠标位置判断一下,就好了 y 的位置离3个 线哪个进就选中那个


2)WPF 里面有更简单的方法, 类似将画的图像当成 object

startstartsvip 2012-04-16
  • 打赏
  • 举报
回复
是个人智利体力心情的那个变化图吧
xupeihuagudulei 2012-04-16
  • 打赏
  • 举报
回复
嘛意思啊,
就一个名词放上来?
tan598121925 2012-04-16
  • 打赏
  • 举报
回复
不懂。
  • 打赏
  • 举报
回复
昨天找例子,今天修改代码,结果如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MyClockApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

/// <summary>
/// 得到当前系统时间,并将其拼接成一个字符串
/// </summary>
/// <returns>数字时钟要显示的字符串</returns>
//public string GetTime()
//{
// String TimeInString = "";
// int hour = DateTime.Now.Hour;
// int min = DateTime.Now.Minute;
// int sec = DateTime.Now.Second;
// //将时,分,秒连成一个字符串
// TimeInString = (hour < 10) ? "0" + hour.ToString() : hour.ToString();
// TimeInString += ":" + ((min < 10) ? "0" + min.ToString() : min.ToString());
// TimeInString += ":" + ((sec < 10) ? "0" + sec.ToString() : sec.ToString());

// return TimeInString;
//}
/// <summary>
/// 在窗体上画表盘时钟的图形
/// </summary>
/// <param name="h"></param>
/// <param name="m"></param>
/// <param name="s"></param>
private void MyDrawClock(int h, int m, int s)
{
Graphics g = this.CreateGraphics();
//Rectangle rect = this.ClientRectangle;

g.Clear(Color.White);

Pen myPen = new Pen(Color.Black, 1);
g.DrawEllipse(myPen, this.ClientRectangle.Width / 2 - 75, this.ClientRectangle.Height / 2 - 75, 150, 150);//画表盘

Point centerPoint = new Point(this.ClientRectangle.Width / 2, this.ClientRectangle.Height / 2);//表的中心点
//计算出秒针,时针,分针的另外一个商点
Point secPoint = new Point((int)(centerPoint.X + (Math.Sin(s * Math.PI / 30) * 50)), (int)(centerPoint.Y - (Math.Cos(s * Math.PI / 30) * 50)));
Point minPoint = new Point((int)(centerPoint.X + (Math.Sin(m * Math.PI / 30) * 40)), (int)(centerPoint.Y - (Math.Cos(m * Math.PI / 30) * 40)));
Point hourPoint = new Point((int)(centerPoint.X + (Math.Sin(h * Math.PI / 6) * 30) - m * Math.PI / 360), (int)(centerPoint.Y - (Math.Cos(h * Math.PI / 6) * 30) - m * Math.PI / 360));

//以不同颜色和宽度绘制表针
myPen = new Pen(Color.Red, 1);
g.DrawLine(myPen, centerPoint, secPoint);//秒针
myPen = new Pen(Color.Green, 2);
g.DrawLine(myPen, centerPoint, minPoint);//分针
myPen = new Pen(Color.Orange, 4);
g.DrawLine(myPen, centerPoint, hourPoint);//时针
//

}

private void 画网格()
{
Graphics 实例 = this.CreateGraphics();
Pen 线条 = new Pen(Color.Green, 1);
Pen 线条1 = new Pen(Color.Orange, 1);
for (int 线 = 10; 线 < 210; 线 = 线 + 10)
{
实例.DrawLine(线条, new Point(线+30, 10), new Point(线+30, 200));//竖线需X坐标=同
实例.DrawLine(线条1, new Point(40, 线), new Point(230, 线));//横线需Y坐标=同
}

string[] 标注 = { "100%", "90%", "80%", "70%", "60%", "50%", "40%", "30%", "20%", "10%", "0%", "-10%", "-20%", "-30%", "-40%", "-50%", "-60%", "-70%", "-80%", "-90%", "-100%" };
int y = 0; Font font = new System.Drawing.Font("Arial", 9, FontStyle.Regular);

for (int i = 0; i < 21; i++)
{ 实例.DrawString(标注[i].ToString(), font, Brushes.Red, 0, y); y = y + 10; }

PointF[] 弦线值 = new PointF[330];

for (int i = 0; i < 弦线值.Length; i++)
{
弦线值[i].X = i;
弦线值[i].Y = 220 / 2 * (1 - (float)Math.Sin(i * 2 * Math.PI / (弦线值.Length - 1)));
}

实例.DrawLines(new Pen(SystemColors.WindowText), 弦线值);

}
/// <summary>
/// 定时刷新显示时间
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
int h = DateTime.Now.Hour;
int s = DateTime.Now.Second;
int m = DateTime.Now.Minute;

//MyDrawClock(h, m, s);
//画网格();
//toolStripStatusLabel1.Text = string.Format("{0}:{1}:{2}", h, m, s);
//lblTime.Text = GetTime();
}
/// <summary>
/// 若无此方法,时钟也能显示,但要等窗体显示几秒以后表盘才会显示。有了此方法窗体和表盘同时显示
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Paint(object sender, PaintEventArgs e)
{
int h = DateTime.Now.Hour;
int s = DateTime.Now.Second;
int m = DateTime.Now.Minute;

//MyDrawClock(h, m, s);
//toolStripStatusLabel1.Text = string.Format("{0}:{1}:{2}", h, m, s);
//lblTime.Text = GetTime();
画网格();
}

private void Form1_Load(object sender, EventArgs e)
{

}


}
}

7,774

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧