| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3170 人关注过本帖
标题:[求助]怎么判断一个点在线段左边还是右边?
只看楼主 加入收藏
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
你还真写,BF,BF

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-01-17 10:58
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
N年不上论坛,总得拉泡屎再走吧

淘宝杜琨
2006-01-17 11:03
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
拉泡屎可以,请把你的PP擦干净

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-01-17 11:09
ryxhh
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2005-12-18
收藏
得分:0 

#include<stdio.h>
float point[3][2];
void leap0();
void leap1();
void leap2();
void getdata();
void main()
{
int leap;
printf("输入点1的x,y坐标:(输入形式:x,y)\n");
scanf("%f%f",&point[0][0],&point[0][1]);
printf("输入点2的x,y坐标:(输入形式:x,y)\n");
scanf("%f%f",&point[1][0],&point[1][1]);

printf("直线方程为:");
if(point[0][0]==point[1][0] && point[0][1]!=point[1][1])
leap=1;
else if(point[0][1]==point[1][1] && point[0][0]!=point[1][0])
leap=2;
else if (point[0][0]!=point[1][0] && point[0][1]!=point[1][1]) leap=0;


switch(leap)
{
case 0: leap0(); break;
case 1: leap1(); break;
case 2: leap2(); break;
default: printf("输入错误\n");
}


}

void leap0()
{
float k,b,k1;
k=(point[1][1]-point[0][1])/(point[1][0]-point[0][0]);
b=((point[1][0]-point[0][0])*point[0][1]-(point[1][1]-point[0][1])*point[0][1])
/(point[1][0]-point[0][0]);
if(b>0)
printf("y=%.2fx+%.2f\n",k,b);
else printf("y=%.2f-%.2f\n",k,-b);
getdata();
k1=point[2][1]/point[2][0];
printf("==============================\n");
if(k1>k)
printf("点3在直线的右边\n");
else if(k1=k)
printf("点3在直线上\n");
else printf("点3在直线的左边\n");

}

void leap1()
{
printf("x=%.2f\n",point[0][0]);
getdata();
printf("==============================\n");
if(point[2][0]>point[0][0])
printf("点3在直线的上边\n");
else if(point[2][0]<point[0][0])
printf("点3在直线的下边\n");
else printf("点3在直线上\n");

}

void leap2()
{
printf("y=%.2f\n",point[0][1]);
getdata();
printf("===========================\n");
if(point[2][1]>point[0][1])
printf("点3在直线的右边\n");
else if(point[2][1]<point[0][1])
printf("点3在直线的左边\n");
else printf("点3在直线上\n");

}

void getdata()
{
printf("输入点3的x,y坐标:(输入形式:x,y)\n");
scanf("%f%f",&point[2][0],&point[2][1]);

}

写写练练
有点复杂


2006-01-17 11:23
martinmcx
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-12-26
收藏
得分:0 

这位楼主大哥更强,我大学学的工商管理,就是对C有点爱好,现在毕业2年啦,一直没机会再深入学,还没到这个地步。
2006-01-17 11:55
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
live41 要写程序,我看就只有两个原因:
1、交作业;
2、正在为哪个MM拼命了。他是一个大男人敌不过一个小女人的一双水汪汪眼睛的那种。

欢迎加入 MVC 技术讨论群(新群:90093426)
2006-01-17 13:44
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用ChenMo在2006-1-17 13:44:00的发言:
live41 要写程序,我看就只有两个原因:
1、交作业;
2、正在为哪个MM拼命了。他是一个大男人敌不过一个小女人的一双水汪汪眼睛的那种。

知我者莫若你也,...

可惜的是,这次你猜错了,我这次是为了招聘网的一道题,那个公司要求写好程序后才批准投简历,

偶数学基础不扎实,读四年都是高等数学啊,离散啊,线形代数之类的,

高中数学忘的7788了.所以不得以只好问你们...

感谢Sun的皮条,感动ing...

2006-01-17 19:05
快速回复:[求助]怎么判断一个点在线段左边还是右边?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026721 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved