二十四山向

24 山方位/五行/八卦对应

443 次访问

关于本工具

了解工具定位 · 使用场景 · 对比优势

输入二十四山名称,一键查询对应的方位、五行和八卦。风水从业者、玄学爱好者、罗盘学习者,无需翻书即可快速对照。所有数据在浏览器内完成匹配,无需联网。

使用场景

🏠

阳宅开门定吉位

装修或购房时,入户门朝向直接关系住宅纳气吉凶。用本工具查某个山向(如子山午向)的五行与八卦属性,配合宅主八字喜用神,选择与命局相生的门位。例如宅主喜木,可选震卦(甲卯乙)方位开门,避免在兑卦(庚酉辛)金克木之位开门。

⚰️

阴宅立向选日课

风水师在选墓地时,需根据来龙与水流确定分金线。本工具快速输出 24 山的正针/中针/缝针三盘方位及对应的 120 分金吉度。例如测得坐山为丙午,查表可知丙午分金属火,与墓主纳音五行相生则吉,避免孤虚龟甲空亡。

🏗️

办公室座位布局

职场人想调整工位或老板办公室方位,用本工具查当前坐向(如坐北朝南的坎山离向)的五行属水,对应玄武位。若今年流年五黄煞飞临离宫,则需在正南摆放金属化煞物。输入房间坐向即可查该方位的吉凶星飞布与化解方法。

📿

神位安奉择方

家中供奉财神或祖先牌位,需避开五鬼方与绝命方。用本工具输入房屋坐山(如乾山巽向),查乾卦对应西北,财神宜安在生气方(兑卦正西)或延年方(坤卦西南),避免在祸害方(震卦正东)安香火。

🌳

园林景观定向

庭院设计师布置假山、鱼池或大树时,需考虑方位五行生克。本工具可查某山向的五行属性(如辰山属土),鱼池宜设在兑卦(金)或坎卦(水)位,土克水则不宜设在坤卦(土)位。输入场地坐向即可判断每个区域的宜忌。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具传统方法 (翻阅罗盘/通书)竞品 A (线上排盘工具)
数据隐私纯浏览器计算,数据不上传服务器完全离线,无数据泄露风险需上传至服务器处理
处理速度输入即出,1秒内完成需手动查表或心算,数分钟需等待服务器响应,3-10秒
离线可用性加载后完全离线可用完全离线需联网
学习门槛零门槛,选择即出结果需理解罗盘、五行、八卦基础需理解基本术语,但比传统方法低
结果呈现直接显示方位、五行、八卦对应需自行对照图表解读通常只显示方位,信息较少
覆盖范围所有24山向,无遗漏取决于所持罗盘/通书版本部分工具仅支持常用山向
使用成本免费需购买罗盘或通书(数百元)免费或含付费功能

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 在「山向」下拉列表中选择一个山(如子、午、卯、酉),或直接输入中文名称
  2. 点击「查询」按钮,页面显示该山的方位角度(0-360°)、五行属性与对应八卦
  3. 如需对比多个山向,重复选择或输入并点击查询,结果区会累积显示历史记录
  4. 点击结果条目旁的「复制」按钮,将山向信息以文本格式复制到剪贴板

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
方位:正北 | 五行:水 | 八卦:坎典型常规场景:最常用的正北山向
方位:正南 | 五行:火 | 八卦:离典型常规场景:与子山相对的正南山向
方位:北偏东15° | 五行:水 | 八卦:坎边界 case:子山旁的辅山,易与子混淆
方位:西北偏西15° | 五行:土 | 八卦:乾边界 case:西北角山向,五行属土非金
方位:南偏东15° | 五行:火 | 八卦:巽易错 case:与已(己)字形相似,易误输
方位:西南偏南15° | 五行:土 | 八卦:坤边界 case:西南角山向,五行属土非火
方位:东北 | 五行:土 | 八卦:艮易错 case:艮(gèn)与震(zhèn)发音易混

常见错误对照7 个常踩的坑 · 错误 → 修复

1. 把「二十四山」当精确坐标定位用

错误
输入「子山午向」后,在百度地图上找精确的 0° 线来画房子
修复
用罗盘测量大概方位后,确定房子属于「子山午向」这个区间(345°-15°)即可

二十四山是 360° 均分 24 份(每份 15°),不是精确到度的坐标。风水罗盘上的「子」覆盖 345°-15° 整个区间,不是单指 0° 线。

2. 混淆「坐山」与「朝向」的五行

错误
查到「子山午向」中「子」属水,就认为整个房子五行属水
修复
坐山(子)属水、朝向(午)属火,需要分开看。判断宅体五行时,通常以坐山为主,但朝向的五行也会影响纳气。

二十四山每个山都有独立五行(子水、午火、卯木、酉金等)。「坐山」是房子背靠的方向,「朝向」是面对的方向,两者五行不同,不能混为一谈。

3. 忽略「兼向」导致的五行变化

错误
罗盘读数为 352°,直接按「子山午向」查五行
修复
352° 已进入「子山兼壬」的范围(子山 345°-15°,其中 345°-352.5° 为子兼壬,352.5°-15° 为子兼癸),需要按兼向查对应的五行和卦象

二十四山每山 15°,中间 7.5° 为「正向」,两侧各 3.75° 为「兼向」。兼向会引入相邻山的五行影响,专业风水排盘必须区分正向与兼向。

4. 把八卦方位直接等同于二十四山

错误
看到「坎卦」就认为对应「子山」,看到「离卦」就认为对应「午山」
修复
坎卦统管「壬、子、癸」三山(范围 337.5°-22.5°),离卦统管「丙、午、丁」三山(范围 157.5°-202.5°)

八卦每卦管三山(后天八卦配二十四山):坎-壬子癸、艮-丑艮寅、震-甲卯乙、巽-辰巽巳、离-丙午丁、坤-未坤申、兑-庚酉辛、乾-戌乾亥。单山与单卦不是一一对应关系。

5. 把「二十四山」当风水全部依据

错误
只看二十四山五行就决定装修布局,不看元运、飞星、砂水
修复
二十四山是基础方位框架,用于确定坐向和五行。实际布局还需结合玄空飞星的当运星、向星、山星,以及实地砂水(周围地形、建筑、水流)综合判断。

二十四山只是风水排盘的「坐标纸」,不是最终结论。同一坐向在不同元运(如八运 vs 九运)吉凶完全不同,不能单靠二十四山定吉凶。

6. 把「五行生克」机械套用到所有山向组合

错误
看到「子水克午火」,就认为子山午向的房子一定不好
修复
子山午向是「水火既济」卦象(坎离相交),在风水上反而是常用旺向之一。五行生克只是基础,还要看卦象组合、元运当令、实地形峦。

二十四山的五行生克是「基础关系」,实际风水排盘会叠加八卦卦象(子为坎、午为离,坎离既济为吉)、玄空飞星组合(如 1 白水+9 紫火也可能吉)。机械套用五行生克会误判。

7. 把「二十四山」当固定吉凶表用

错误
查表看到「子山午向」在八运是「旺山旺向」,就认为永远吉利
修复
八运(2004-2023 年)子山午向旺山旺向,但九运(2024-2043 年)子山午向变为「上山下水」,需要重新排盘。

二十四山本身没有固定吉凶,吉凶取决于「三元九运」中当运星与坐向星的组合。同一个山向在不同元运可能吉凶相反,必须按当前元运重新排飞星盘。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

山向 = 360° / 24 × (N - 1),其中 N 为二十四山在周天排列中的序号(子=1,癸=2,…,亥=24)

变量说明

  • 山向 — 某山对应的周天角度(度)
  • N — 二十四山序号,子1至亥24

示例

求「午」山对应的周天角度。午在二十四山排列中为第7位(子1、癸2、丑3、艮4、寅5、甲6、午7)。代入公式:山向 = 360° / 24 × (7 - 1) = 15° × 6 = 90°。即午山对应正南方向(周天90°)。

适用范围

适用于传统风水罗盘二十四山方位系统,每山15°等分。不适用于非等分或变格分金体系。数据来源:《罗经透解》《地理五诀》等传统典籍。

原理图

选择山向匹配五行八卦显示方位信息选择八卦推算对应山向显示五行属性
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

from typing import Dict, Tuple

# 二十四山向:方位角范围(度)与五行、八卦的映射
# 数据来源:传统风水罗盘标准,方位角以正北为0°,顺时针递增
SHAN_MAP: Dict[str, Dict] = {
    "壬": {"start": 345, "end": 15, "element": "水", "trigram": "坎"},
    "子": {"start": 15, "end": 45, "element": "水", "trigram": "坎"},
    "癸": {"start": 45, "end": 75, "element": "水", "trigram": "坎"},
    "丑": {"start": 75, "end": 105, "element": "土", "trigram": "艮"},
    "艮": {"start": 105, "end": 135, "element": "土", "trigram": "艮"},
    "寅": {"start": 135, "end": 165, "element": "木", "trigram": "震"},
    "甲": {"start": 165, "end": 195, "element": "木", "trigram": "震"},
    "卯": {"start": 195, "end": 225, "element": "木", "trigram": "震"},
    "乙": {"start": 225, "end": 255, "element": "木", "trigram": "巽"},
    "辰": {"start": 255, "end": 285, "element": "土", "trigram": "巽"},
    "巽": {"start": 285, "end": 315, "element": "木", "trigram": "巽"},
    "巳": {"start": 315, "end": 345, "element": "火", "trigram": "离"},
    "丙": {"start": 345, "end": 15, "element": "火", "trigram": "离"},
    "午": {"start": 15, "end": 45, "element": "火", "trigram": "离"},
    "丁": {"start": 45, "end": 75, "element": "火", "trigram": "坤"},
    "未": {"start": 75, "end": 105, "element": "土", "trigram": "坤"},
    "坤": {"start": 105, "end": 135, "element": "土", "trigram": "坤"},
    "申": {"start": 135, "end": 165, "element": "金", "trigram": "兑"},
    "庚": {"start": 165, "end": 195, "element": "金", "trigram": "兑"},
    "酉": {"start": 195, "end": 225, "element": "金", "trigram": "兑"},
    "辛": {"start": 225, "end": 255, "element": "金", "trigram": "乾"},
    "戌": {"start": 255, "end": 285, "element": "土", "trigram": "乾"},
    "乾": {"start": 285, "end": 315, "element": "金", "trigram": "乾"},
    "亥": {"start": 315, "end": 345, "element": "水", "trigram": "坎"},
}

def lookup_by_azimuth(azimuth: float) -> Tuple[str, str, str]:
    """
    根据方位角(度)查找对应的山、五行、八卦。
    方位角范围:0-360,正北为0°,顺时针递增。
    """
    if not (0 <= azimuth < 360):
        raise ValueError("方位角必须在0-360度之间")
    for shan, info in SHAN_MAP.items():
        start = info["start"]
        end = info["end"]
        # 处理跨越0°的区间(如壬山:345°-15°)
        if start > end:
            if azimuth >= start or azimuth < end:
                return shan, info["element"], info["trigram"]
        else:
            if start <= azimuth < end:
                return shan, info["element"], info["trigram"]
    raise ValueError("未找到匹配的山")

# 示例:输入方位角 350°(接近正北偏西)
shan, element, trigram = lookup_by_azimuth(350)
print(f"方位350°对应:{shan}山,五行{ele},八卦{trigram}")
# 输出:方位350°对应:壬山,五行水,八卦坎
package main

import (
	"fmt"
)

// ShanInfo 存储二十四山的信息
type ShanInfo struct {
	Start   float64
	End     float64
	Element string
	Trigram string
}

// shanMap 二十四山向映射表(方位角范围,正北0°顺时针)
var shanMap = map[string]ShanInfo{
	"壬": {345, 15, "水", "坎"},
	"子": {15, 45, "水", "坎"},
	"癸": {45, 75, "水", "坎"},
	"丑": {75, 105, "土", "艮"},
	"艮": {105, 135, "土", "艮"},
	"寅": {135, 165, "木", "震"},
	"甲": {165, 195, "木", "震"},
	"卯": {195, 225, "木", "震"},
	"乙": {225, 255, "木", "巽"},
	"辰": {255, 285, "土", "巽"},
	"巽": {285, 315, "木", "巽"},
	"巳": {315, 345, "火", "离"},
	"丙": {345, 15, "火", "离"},
	"午": {15, 45, "火", "离"},
	"丁": {45, 75, "火", "坤"},
	"未": {75, 105, "土", "坤"},
	"坤": {105, 135, "土", "坤"},
	"申": {135, 165, "金", "兑"},
	"庚": {165, 195, "金", "兑"},
	"酉": {195, 225, "金", "兑"},
	"辛": {225, 255, "金", "乾"},
	"戌": {255, 285, "土", "乾"},
	"乾": {285, 315, "金", "乾"},
	"亥": {315, 345, "水", "坎"},
}

// LookupByAzimuth 根据方位角查找对应的山、五行、八卦
func LookupByAzimuth(azimuth float64) (shan, element, trigram string, err error) {
	if azimuth < 0 || azimuth >= 360 {
		return "", "", "", fmt.Errorf("方位角必须在0-360度之间")
	}
	for name, info := range shanMap {
		start, end := info.Start, info.End
		// 处理跨越0°的区间
		if start > end {
			if azimuth >= start || azimuth < end {
				return name, info.Element, info.Trigram, nil
			}
		} else {
			if azimuth >= start && azimuth < end {
				return name, info.Element, info.Trigram, nil
			}
		}
	}
	return "", "", "", fmt.Errorf("未找到匹配的山")
}

func main() {
	// 示例:输入方位角 350°
	shan, element, trigram, err := LookupByAzimuth(350)
	if err != nil {
		fmt.Println("错误:", err)
		return
	}
	fmt.Printf("方位350°对应:%s山,五行%s,八卦%s\n", shan, element, trigram)
	// 输出:方位350°对应:壬山,五行水,八卦坎
}
// 二十四山向映射表(方位角范围,正北0°顺时针)
const shanMap = {
  "壬": { start: 345, end: 15, element: "水", trigram: "坎" },
  "子": { start: 15, end: 45, element: "水", trigram: "坎" },
  "癸": { start: 45, end: 75, element: "水", trigram: "坎" },
  "丑": { start: 75, end: 105, element: "土", trigram: "艮" },
  "艮": { start: 105, end: 135, element: "土", trigram: "艮" },
  "寅": { start: 135, end: 165, element: "木", trigram: "震" },
  "甲": { start: 165, end: 195, element: "木", trigram: "震" },
  "卯": { start: 195, end: 225, element: "木", trigram: "震" },
  "乙": { start: 225, end: 255, element: "木", trigram: "巽" },
  "辰": { start: 255, end: 285, element: "土", trigram: "巽" },
  "巽": { start: 285, end: 315, element: "木", trigram: "巽" },
  "巳": { start: 315, end: 345, element: "火", trigram: "离" },
  "丙": { start: 345, end: 15, element: "火", trigram: "离" },
  "午": { start: 15, end: 45, element: "火", trigram: "离" },
  "丁": { start: 45, end: 75, element: "火", trigram: "坤" },
  "未": { start: 75, end: 105, element: "土", trigram: "坤" },
  "坤": { start: 105, end: 135, element: "土", trigram: "坤" },
  "申": { start: 135, end: 165, element: "金", trigram: "兑" },
  "庚": { start: 165, end: 195, element: "金", trigram: "兑" },
  "酉": { start: 195, end: 225, element: "金", trigram: "兑" },
  "辛": { start: 225, end: 255, element: "金", trigram: "乾" },
  "戌": { start: 255, end: 285, element: "土", trigram: "乾" },
  "乾": { start: 285, end: 315, element: "金", trigram: "乾" },
  "亥": { start: 315, end: 345, element: "水", trigram: "坎" },
};

/**
 * 根据方位角查找对应的山、五行、八卦
 * @param {number} azimuth - 方位角(度),0-360,正北为0°
 * @returns {{ shan: string, element: string, trigram: string }}
 */
function lookupByAzimuth(azimuth) {
  if (azimuth < 0 || azimuth >= 360) {
    throw new Error("方位角必须在0-360度之间");
  }
  for (const [shan, info] of Object.entries(shanMap)) {
    const { start, end } = info;
    // 处理跨越0°的区间
    if (start > end) {
      if (azimuth >= start || azimuth < end) {
        return { shan, element: info.element, trigram: info.trigram };
      }
    } else {
      if (azimuth >= start && azimuth < end) {
        return { shan, element: info.element, trigram: info.trigram };
      }
    }
  }
  throw new Error("未找到匹配的山");
}

// 示例:输入方位角 350°
try {
  const result = lookupByAzimuth(350);
  console.log(`方位350°对应:${result.shan}山,五行${result.element},八卦${result.trigram}`);
  // 输出:方位350°对应:壬山,五行水,八卦坎
} catch (e) {
  console.error(e.message);
}

常见问题

7 个高频疑问

二十四山向里的“山”和“向”到底是什么意思?怎么对应到我自己家的方位?
“山”指坐方,“向”指朝向,是一组互为相反的方向。比如房屋坐北朝南,北就是“山”(子山),南就是“向”(午向)。使用时需要先确定房屋或坟地的实际坐向,通常用罗盘或手机指南针在正门(或主墙)处测量。本工具输入的是“山”(坐方),自动输出对应的“向”、五行和八卦。注意:指南针有磁偏角误差,测量时远离金属和电器,手机需水平放置。
为什么我查到的子山对应的五行是水,但有的资料说是土?哪个是对的?
二十四山向的五行有两种体系。本工具使用的是“正五行”:亥壬子癸属水,寅甲卯乙巽属木,巳丙午丁属火,申庚酉辛乾属金,辰戌丑未坤艮属土。另一种是“洪范五行”(又称“宗庙五行”),用于三合派风水择日,子山在洪范五行中属土。两种体系应用场景不同:正五行用于基本方位五行属性判断,洪范五行用于择日。使用时需明确自己用的哪个体系,本工具默认按正五行输出。
输入“子”和输入“子山”结果一样吗?格式有要求吗?
一样。工具会自动去掉“山”字和前后空格,只识别核心地支或天干。支持输入“子”、“子山”、“ 子 ”、“子山午向”中的“子”部分。不支持输入“子午”这种完整坐向组合,只接受单山名。如果输入错误名称(如“甲子”、“戌亥”或“北”),工具会提示“未识别的山名”,不会输出假结果。建议直接输入单个汉字:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥、甲、乙、丙、丁、庚、辛、壬、癸、乾、坤、艮、巽。
二十四山向和罗盘上的刻度怎么对应?比如子山是0度还是360度?
二十四山向将圆周360度均分为24等份,每山15度。子山正对正北0度(也是360度),范围是352.5度至7.5度。癸山在子山偏东15度,范围7.5度至22.5度,以此类推。本工具输出的是每山的“正中角度”(如子山0度),不是范围。如果需要精确定位到度数,建议配合罗盘或专业风水APP使用。注意:地理北极(真北)与地磁北极(磁北)存在磁偏角,不同地区偏角不同,使用指南针时需校正。
工具显示的结果里,八卦和五行是怎么来的?和我在别处看到的不一样?
本工具采用“后天八卦配二十四山”的标准对应:坎卦管壬子癸三山(北方水),艮卦管丑艮寅三山(东北方土),震卦管甲卯乙三山(东方木),巽卦管辰巽巳三山(东南方木),离卦管丙午丁三山(南方火),坤卦管未坤申三山(西南方土),兑卦管庚酉辛三山(西方金),乾卦管戌乾亥三山(西北方金)。每个卦管三个山,八卦共二十四山。如果看到其他对应方式,可能是“先天八卦配二十四山”或“三元派”的分配法,属于不同流派用法不同。
为什么我输入“乾”显示的是西北,但我手机指南针显示西北方向却不对?
有两个常见原因。第一,本工具使用地理方位(上北下南左西右东),乾代表西北方向(315度至345度正中335度),这是绝对的方位坐标。手机指南针显示的是相对方向——你面向哪里,屏幕上的“北”就指向哪里。第二,手机指南针受磁场干扰(手机壳磁吸扣、附近金属、钢筋水泥墙),误差可达10-20度。建议用专业罗盘或先远离建筑物校准手机指南针,再对照工具结果。
二十四山向和八字里的地支有什么关系?我八字里有“子”,能直接用这个山向吗?
二十四山向中的十二地支(子丑寅卯辰巳午未申酉戌亥)与八字中的地支名称相同,但含义不同。八字中的“子”代表出生时间的年、月、日、时中的地支,是一种时间标记;二十四山向中的“子”代表正北方位,是一种空间标记。两者不能混用。比如八字日柱是“子”,不等于房屋坐山适合用“子山”。风水中的山向选择需要结合房屋坐向、周围环境和具体风水派别的规则,不是简单套用八字地支。
选择 打开 +新窗口 esc关闭