c语言坐标函数
1. 用c语言定义一个坐标点类型Point,每个Point有成员x, y表示其坐标。输入一个函数,求象限
用c语言定义一个坐标点类型Point,每个Point有成员x, y表示其坐标。输入一个函数,求象限
这么早已经习惯每天
2. 求用c语言实现直角坐标(x,y,z)转换为球坐标(r,angle_a,angle_b),非常感谢
首先,matlab 本身提供了把直角坐标转化为极坐标的函数cart2pol。调用方法为:
[TH,R] = cart2pol(X,Y) TH 是极坐标的角度坐标,R 是距离坐标。
[TH,R,Z] = cart2pol(X,Y,Z) 这个函数同时支持3维直角坐标到柱坐标的转换。
如果因为是作业或者练习,一定要自己写一个的话,请继续往下看。
考虑到这个程序的性质,编成一个函数比较适合。编写这个函数需要用到直角坐标与极坐标的数学关系。考虑到输入参数可能是一个向量或矩阵,关系式里面的运算符应该用加点运算符。
函数代码如下:
function [ TH,R ] = mycart2pol(X,Y)
%this function transforms corresponding elements of data
%stored in Cartesian coordinates X,Y to polar coordinates
%angle TH and radius R.
R=(X.^2+Y.^2).^0.5;
TH=atan(Y./X);
end
测试结果如下:
3. c语言中若要输入坐标应该怎么办
先算出纵坐标的源值,然后
用二维数组来存储坐标,如:int a[5][5]; 可以用a[0][0] a[0][1]....
a[i][j]....a[4][3] a[4][4],来存储5对坐标值,i、j分别是横坐标和纵坐标。
4. C语言设计函数顶点坐标
参考代码如下:
函数头文件CalC.h
doublearround(doublex[],doubley[],intp);
函数定义文件CalC.c
#include<math.h>
doublearround(doublex[],doubley[],intp)
{
inti;
doubleC=0;//周长
doublel_p_i;//第i条边长度
for(i=0;i<p;i++)
{
l_p_i=sqrt((y[i+1]-y[i])*(y[i+1]-y[i])+(x[i+1]-x[i])*(x[i+1]-x[i]));
printf("第%d条边长=%f ",i+1,l_p_i);
C+=l_p_i;
}
returnC;
}
主文件main.c
#include<stdio.h>
#include"CalC.h"
intmain(void)
{
doublex[3]={0.0,4.0,4.0};
doubley[3]={0.0,0.0,3.0};
intp=3;
doubleC=0.0;//周长
C=arround(x,y,p);
printf("C=%f ",C);
return0;
}
效果图
5. 用C语言编写一个程序:定义一个点的坐标,然后定义两个点,求这两个点间的距离。
#include<stdio.h>
#include<math.h>
structPoint
{
doublex,y;
};
/**.*/
doubledistance(conststructPoint*a,conststructPoint*b)
{
returnsqrt((a->x-b->x)*(a->x-b->x)+(a->y-b->y)*(a->y-b->y));
}
intmain()
{
structPointa,b;
printf("Pleaseinputthefirstpoint:");
scanf("%lf%lf",&a.x,&a.y);
printf("Pleaseinputthesecondpoint:");
scanf("%lf%lf",&b.x,&b.y);
printf("Thedistanceofthetwopointis%f. ",distance(&a,&b));
return0;
}
说明:
1、distance() 函数的两个参数 const struct Point *a 和 b 使用了 const 修饰,是表示 a 和 b 在函数执行过程中不会被修改;这样即使函数体内部写错,修改了 a 和 b 的值,编译也不会通过。
2、对 double,scanf 用 %lf,printf 用 %f。
以上。
6. C语言,如何在指定坐标输入数据
用gotoxy和gets吧~~~
gotoxy(old_x,old_y);//跳转到指定坐标输出信息
cprintf("User Name:");//在指定坐标处输出User Name:
gotoxy(old_x,old_y+2);//跳转到指定坐标输入信息
gets(name);//输入用户名,name为所定义的字符数组
这是我做一个游戏界面的用户名和密码输入的代码~~你看看吧,希望对你有所帮助。。
7. C语言如何将坐标中的(x,y)提取出来
用ReadConsoleOutputCharacterA函数,在windows.h中。
给你一个封好的函数吧,其作用是提取出窗口中第x行y列的位置的字符是什么。(如果没有东西会返回空格符号)。
#include<windows.h>
//下标从1开始,x行y列。
charGetStr(intx,inty)
{
COORDpos;
//ReadConsoleOutputCharacterA里的x和y指的是x列y行,且从0开始标号
pos.X=y-1;pos.Y=x-1;
LPSTRstr;
DWORDread;
ReadConsoleOutputCharacterA(GetStdHandle(STD_OUTPUT_HANDLE),str,1,pos,&read);
returnstr[0];
}
使用举例:
intmain()
{
printf("kjndfgdfg khgfhfhfgd jifdgdfgg ");
printf("1,2:%c ",GetStr(1,2));
return0;
}
输出为
kjndfgdfg
khgfhfhfgd
jifdgdfgg
1,2:j
8. 求高手们用C语言编写一个函数,根据两个变量自动显示点的坐标(X,Y,Z)
//class是写成类吗,这个写成类有点多此一举,下面用最简单的函数写的,变量自己改成英文命名
1.h
#include<stdio.h>
#include<math.h>
//宏定义值
#definehXX
#defineLXX
#defineαXX
doubleβ,θ;
doubleA[3],B[3],M[3];
voidmath(β,θ,A,B,M);
1.cpp
#include"1.h"
math(β,θ,A,B,M)
{
A[0]=L*sin(fabs(θ-α));
A[1]=L*cos(fabs(θ-α))*cosβ;
A[2]=L*cos(fabs(θ-α))*sinβ,
//公式太长自己写
}
voidmain()
{
printf("请输入β,θ的值: ");
scanf("%f,%f",&β,&θ);
math(β,θ,A,B,M);
printf("A的坐标为:(%f,%f,%f) ",A[0],A[1],A[2]);
//输出自己写
}
9. C语言编程坐标曲线
下面是的是昨天的,但是修改了一下坐标的刻度.
/*******************************************************
*Author :Wacs5
*Date :20090105(YYYY-MM-DD)
*Function :画简易的曲线图 *********************************************************/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <Graphics.h>
#define n 8
int main()
{
int i,j;
float data[]={7,3,12,6,9,5,8,11};
char str[40];
int gdrive=DETECT,gmode,errorcode;
int maxx,maxy;
int perx,pery;
int x0,x1,y0,y1;
int coloraxis=2,colorline=3;
float mindata,maxdata,ndata;
initgraph(&gdrive,&gmode,""); /*初始化设备*/
if ((errorcode=graphresult())!=grOk) /*查错*/
{
printf("Graphics error:%s\nPress any key to exit:",grapherrormsg(errorcode));
getch();
exit(1);
}
maxx=getmaxx();
maxy=getmaxy();
mindata=0;
maxdata=data[0];
for (i=1;i<n;i++)
if (maxdata<data[i])
maxdata=data[i];
perx=maxx/(n+4);
pery=maxy/(maxdata-mindata+4);
x0=2*perx;
y0=maxy-2*pery;
x1=maxx-2*perx;
y1=2*pery;
setcolor(coloraxis);
line(x0,y0,x1,y0);
line(x0,y0,x0,y1);
line(x1,y0,x1-4,y0+3);
line(x1,y0,x1-4,y0-3);
line(x0,y1,x0+3,y1+4);
line(x0,y1,x0-3,y1+4);
settextjustify(CENTER_TEXT,TOP_TEXT);
for (i=0;i<=n;i++)
{
j=x0+i*perx;
line(j,y0,j,y0+2); /*刻度线*/
sprintf(str,"%d",i);
outtextxy(j,y0+4,str);
}
settextjustify(RIGHT_TEXT,CENTER_TEXT);
for (i=1;i<=12;i++)
{
j=y0-i*pery;
line(x0,j,x0-2,j); /*刻度线*/
sprintf(str,"%d",i);
outtextxy(x0-4,j,str);
}
setcolor(colorline);
x1=x0+perx;
y1=y0-(data[0]-mindata)*pery;
circle(x1,y1,2);
moveto(x1,y1);
i=1;
do
{
x1+=perx;
y1=y0-(data[i]-mindata)*pery;
lineto(x1,y1);
circle(x1,y1,2);
moveto(x1,y1);
i++;
}while(i<n);
getch();
closegraph();
return 0;
}